Practical Flashcards
Implement a basic player character that can move and jump.
- Add RB to player object
- Add Ground Layer and assign the Layer to Ground object
- Write the Script below
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŹđ©đđđ = đđđ;
đ©đźđđ„đąđ đđ„đšđđ đŁđźđŠđ©đđ©đđđ = đđđ;
đ©đźđđ„đąđ đđđČđđ«đđđŹđ€ đ đ«đšđźđ§đđđđČđđ«;
đ©đźđđ„đąđ đđšđšđ„ đąđŹđđ§đđ«đšđźđ§đ = đđ«đźđ;
đ©đ«đąđŻđđđ đđąđ đąđđđšđđČ đ©đ„đđČđđ«đđ; đ©đ«đąđŻđđđ đŻđšđąđ đđ°đđ€đ() { đ©đ„đđČđđ«đđ = đđđđđšđŠđ©đšđ§đđ§đ<đđąđ đąđđđšđđČ>(); } // đđ©đđđđ đąđŹ đđđ„đ„đđ đšđ§đđ đ©đđ« đđ«đđŠđ đŻđšđąđ đđ©đđđđ() { đąđŹđđ§đđ«đšđźđ§đ = đđĄđČđŹđąđđŹ.đđđČđđđŹđ(đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§, đđđđđšđ«đ.đđšđ°đ§, đ.đđ, đ đ«đšđźđ§đđđđČđđ«); } đ©đ«đąđŻđđđ đŻđšđąđ đ đąđ±đđđđ©đđđđ() { // đđđ đąđ§đ©đźđ đđ«đšđŠ đđšđđĄ đŻđđ«đđąđđđ„ đđ§đ đĄđšđ«đąđłđšđ§đđđ„ đđ±đđŹ đđ„đšđđ đŻđđ«đđąđđđ„đđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđđ«đđąđđđ„"); đđ„đšđđ đĄđšđ«đąđłđšđ§đđđ„đđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđšđ«đąđłđšđ§đđđ„"); // đđ«đđđđ đ đŠđšđŻđđŠđđ§đ đŻđđđđšđ« đđđđđšđ«đ đŠđšđŻđđŠđđ§đ = đ§đđ° đđđđđšđ«đ(đĄđšđ«đąđłđšđ§đđđ„đđ§đ©đźđ, đ, đŻđđ«đđąđđđ„đđ§đ©đźđ); đ©đ„đđČđđ«đđ.đđšđŻđđđšđŹđąđđąđšđ§(đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§ + đŠđšđŻđđŠđđ§đ * đŹđ©đđđ * đđąđŠđ.đđąđ±đđđđđ„đđđđąđŠđ); đąđ (đđ§đ©đźđ.đđđđđđČđđšđ°đ§(đđđČđđšđđ.đđ©đđđ) && đąđŹđđ§đđ«đšđźđ§đ) { đ©đ„đđČđđ«đđ.đđđđ đšđ«đđ(đđđđđšđ«đ.đźđ© * đŁđźđŠđ©đđ©đđđ, đ đšđ«đđđđšđđ.đđŠđ©đźđ„đŹđ); đąđŹđđ§đđ«đšđźđ§đ = đđđ„đŹđ; } } }
Create a simple scene with a moving cube controlled by user input.
- Create a 3D Cube object
- Attach the script and then write the code below:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŹđ©đđđ = đđđ;
// đđ©đđđđ đąđŹ đđđ„đ„đđ đšđ§đđ đ©đđ« đđ«đđŠđ đŻđšđąđ đđ©đđđđ() { // đđđ đąđ§đ©đźđ đđ«đšđŠ đđšđđĄ đŻđđ«đđąđđđ„ đđ§đ đĄđšđ«đąđłđšđ§đđđ„ đđ±đđŹ đđ„đšđđ đŻđđ«đđąđđđ„đđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđđ«đđąđđđ„"); đđ„đšđđ đĄđšđ«đąđłđšđ§đđđ„đđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđšđ«đąđłđšđ§đđđ„"); // đđ«đđđđ đ đŠđšđŻđđŠđđ§đ đŻđđđđšđ« đđđđđšđ«đ đŠđšđŻđđŠđđ§đ = đ§đđ° đđđđđšđ«đ(đĄđšđ«đąđłđšđ§đđđ„đđ§đ©đźđ, đ, đŻđđ«đđąđđđ„đđ§đ©đźđ); // đđšđ«đŠđđ„đąđłđ đŠđšđŻđđŠđđ§đ đŻđđđđšđ« đđš đđŻđšđąđ đđđŹđđđ« đđąđđ đšđ§đđ„ đŠđšđŻđđŠđđ§đ đđ§đ đđ©đ©đ„đČ đŹđ©đđđ đđ§đ đđđ„đđđđąđŠđ đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§ += đŠđšđŻđđŠđđ§đ.đ§đšđ«đŠđđ„đąđłđđ * đŹđ©đđđ * đđąđŠđ.đđđ„đđđđąđŠđ; } }
Set up a health system where the player loses health on collision with an enemy.
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đąđ§đ đŠđđ±đđđđ„đđĄ = đđđ;
đ©đźđđ„đąđ đąđ§đ đđźđ«đ«đđ§đđđđđ„đđĄ;
đ©đźđđ„đąđ đąđ§đ đđđŠđđ đ = đđ;
đ©đ«đąđŻđđđ đŻđšđąđ đđđđ«đ() { đđźđ«đ«đđ§đđđđđ„đđĄ = đŠđđ±đđđđ„đđĄ; } đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđšđ„đ„đąđŹđąđšđ§đđ§đđđ«(đđšđ„đ„đąđŹđąđšđ§ đšđđĄđđ«) { đąđ (đšđđĄđđ«.đ đđŠđđđđŁđđđ.đđšđŠđ©đđ«đđđđ ("đđ§đđŠđČ") && đđźđ«đ«đđ§đđđđđ„đđĄ > đ) { đđźđ«đ«đđ§đđđđđ„đđĄ -= đđđŠđđ đ; đđđđźđ .đđšđ ("đđ„đđČđđ« đđđđ„đđĄ: " + đđźđ«đ«đđ§đđđđđ„đđĄ); đąđ (đđźđ«đ«đđ§đđđđđ„đđĄ <= đ) { // đđ„đđČ đđ§đąđŠđđđąđšđ§ đšđ« đ©đđ«đđšđ«đŠ đđ§đČ đđđđąđšđ§ đđŹ đ©đđ« đđĄđ đ đđŠđ đ«đđȘđźđąđ«đđŠđđ§đ. đđąđ(); } } } đŻđšđąđ đđąđ() { // đđŠđ©đ„đđŠđđ§đ đ©đ„đđČđđ« đđđđđĄ đđđĄđđŻđąđšđ« đĄđđ«đ (đ.đ ., đ«đđŹđ©đđ°đ§, đ đđŠđ đšđŻđđ« đŹđđ«đđđ§) đđđđźđ .đđšđ ("đđ„đđČđđ« đđąđđ!"); } }
Design a main menu with buttons to start the game, view options, and quit.
đđ„đŹđ
- Create the Start, Options, and Quit Button
- Create Options related Image, Buttons, Text etc.
- Assign the Methods from the script below to respective Buttons:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ.đđ;
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ.đđđđ§đđđđ§đđ đđŠđđ§đ;
đźđŹđąđ§đ đđ§đąđđČđđđąđđšđ«;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđšđšđ„ đąđ§đđ©đđąđšđ§đŹđđđ§đź = đđđ„đŹđ;
đ©đźđđ„đąđ đŻđšđąđ đđđđ«đđđđŠđ()
{
đđđđ§đđđđ§đđ đđ«.đđšđđđđđđ§đ(âđđđŠđ đđđđ§đâ);
}
đ©đźđđ„đąđ đŻđšđąđ đđ©đđąđšđ§đŹđđđ§đź() { đąđ (!đąđ§đđ©đđąđšđ§đŹđđđ§đź) { //đđŠđ©đ„đđŠđđ§đ đđđ§đź đšđ©đđąđšđ§đŹ đĄđđ«đ đđđđźđ .đđšđ ("đđ©đđąđšđ§đŹ đđđ§đź đđ©đđ§đđ"); đąđ§đđ©đđąđšđ§đŹđđđ§đź = đđ«đźđ; } } đ©đźđđ„đąđ đŻđšđąđ đđ„đšđŹđđđ©đđąđšđ§đŹđđđ§đź() { đąđ (đąđ§đđ©đđąđšđ§đŹđđđ§đź) { //đđŠđ©đ„đđŠđđ§đ đđźđąđ đđđ§đź đšđ©đđąđšđ§đŹ đđźđ§đđđąđšđ§ đĄđđ«đ đđđđźđ .đđšđ ("đđ©đđąđšđ§đŹ đđđ§đź đđ„đšđŹđđ"); đąđ§đđ©đđąđšđ§đŹđđđ§đź = đđđ„đŹđ; } } đ©đźđđ„đąđ đŻđšđąđ đđźđąđđđđŠđ() { #đąđ đđđđđ_đđđđđđ đđđąđđšđ«đđ©đ©đ„đąđđđđąđšđ§.đđ±đąđđđ„đđČđŠđšđđ();
đđ©đ©đ„đąđđđđąđšđ§.đđźđąđ();
} }
Implement a pause menu that pauses the game and resumes it.
- Create Pause and Resume Buttons
- Assign the methods from the script below to respective buttons
using UnityEngine;
using UnityEngine.UI;
public class TestScript : MonoBehaviour
{
public bool isGamePaused;
public void PauseGame()
{
if (!isGamePaused)
{
Time.timeScale = 0;
isGamePaused = true;
}
}
public void ResumeGame() { if (isGamePaused) { Time.timeScale = 1; isGamePaused = false; } } }
Create a collectable item that updates the playerâs score when picked up.
- Add both Pause and Resume Buttons
- Assign respective methods from script below
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đąđ§đ đŹđđšđ«đ;
đ©đźđđ„đąđ đąđ§đ đđšđ„đ„đđđđąđđ„đđđšđąđ§đđŹ = đđ;
đ©đ«đąđŻđđđ đŻđšđąđ đđđđ«đ() { đŹđđšđ«đ = đ; } đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđ«đąđ đ đđ«đđ§đđđ«(đđšđ„đ„đąđđđ« đšđđĄđđ«) { đąđ(đšđđĄđđ«.đ đđŠđđđđŁđđđ.đđšđŠđ©đđ«đđđđ ("đđšđ„đ„đđđđąđđ„đđŹ")) { đŹđđšđ«đ += đđšđ„đ„đđđđąđđ„đđđšđąđ§đđŹ; đđđđźđ .đđšđ ("đđšđ„đ„đđđđąđđ„đđŹ đđđđđąđ§đđ"); đđđŹđđ«đšđČ(đšđđĄđđ«.đ đđŠđđđđŁđđđ); } } }
Set up a basic first-person camera controller.
- Attach the script below to main camera
- Assign player object transform
- Use LateUpdate
Script:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŠđšđźđŹđđđđ§đŹđąđđąđŻđąđđČ = đđđđ;
đđ„đšđđ đŻđđ«đđąđđđ„đđšđđđđąđšđ§ = đđ;
đđ„đšđđ đĄđšđ«đąđłđšđ§đđđ„đđšđđđđąđšđ§ = đđ;
đ©đźđđ„đąđ đđ«đđ§đŹđđšđ«đŠ đ©đ„đđČđđ«đđšđđČ;
đŻđšđąđ đđđđđđ©đđđđ() { đđ„đšđđ đŠđšđźđŹđđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđšđźđŹđ đ") * đŠđšđźđŹđđđđ§đŹđąđđąđŻđąđđČ * đđąđŠđ.đđđ„đđđđąđŠđ; đđ„đšđđ đŠđšđźđŹđđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđšđźđŹđ đ") * đŠđšđźđŹđđđđ§đŹđąđđąđŻđąđđČ * đđąđŠđ.đđđ„đđđđąđŠđ; đŻđđ«đđąđđđ„đđšđđđđąđšđ§ -= đŠđšđźđŹđđ; đŻđđ«đđąđđđ„đđšđđđđąđšđ§ = đđđđĄđ.đđ„đđŠđ©(đŻđđ«đđąđđđ„đđšđđđđąđšđ§, -đđđ, đđđ); // đđšđđđđ đđĄđ đđđŠđđ«đ đŻđđ«đđąđđđ„đ„đČ đđ«đđ§đŹđđšđ«đŠ.đ„đšđđđ„đđšđđđđąđšđ§ = đđźđđđđ«đ§đąđšđ§.đđźđ„đđ«(đŻđđ«đđąđđđ„đđšđđđđąđšđ§, đđ, đđ); đĄđšđ«đąđłđšđ§đđđ„đđšđđđđąđšđ§ += đŠđšđźđŹđđ; // đđšđđđđ đđĄđ đ©đ„đđČđđ« đđšđđČ đĄđšđ«đąđłđšđ§đđđ„đ„đČ đ©đ„đđČđđ«đđšđđČ.đ„đšđđđ„đđšđđđđąđšđ§ = đđźđđđđ«đ§đąđšđ§.đđźđ„đđ«(đđ, đĄđšđ«đąđłđšđ§đđđ„đđšđđđđąđšđ§, đđ); } }
Create Player Health Bar UI that decreases as player takes damage
- Add Player Health UI Background Image
- Health Filler Image
- Slider to the Filler
- Attach the HealthBar/Preferred name script to the HealthBar UI Object and then reference to the Slider
- HealthBar Script below:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ.đđ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđđ„đđĄđđđ« : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đąđđđ« đĄđđđ„đđĄđđ„đąđđđ«;
đ©đźđđ„đąđ đđŠđđ đ đĄđđđ„đđĄđ
đąđ„đ„đđ«;
đ©đźđđ„đąđ đŻđšđąđ đđđ±đđđđ„đđĄ(đąđ§đ đĄđđđ„đđĄ) { đĄđđđ„đđĄđđ„đąđđđ«.đŠđđ±đđđ„đźđ = đĄđđđ„đđĄ; đĄđđđ„đđĄđđ„đąđđđ«.đŻđđ„đźđ = đĄđđđ„đđĄ; } đ©đźđđ„đąđ đŻđšđąđ đđźđ«đ«đđ§đđđđđ„đđĄ(đąđ§đ đĄđđđ„đđĄ) { đĄđđđ„đđĄđđ„đąđđđ«.đŻđđ„đźđ = đĄđđđ„đđĄ; } }
Assign these values in PlayerScript:
đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđšđ„đ„đąđŹđąđšđ§đđ§đđđ«(đđšđ„đ„đąđŹđąđšđ§ đšđđĄđđ«)
{
đąđ (đšđđĄđđ«.đ đđŠđđđđŁđđđ.đđšđŠđ©đđ«đđđđ (âđđ§đđŠđČâ) && đđźđ«đ«đđ§đđđđđ„đđĄ > đ)
{
// đđ©đ©đ„đČ đđđŠđđ đ đđš đđĄđ đ©đ„đđČđđ«
đđźđ«đ«đđ§đđđđđ„đđĄ -= đđ§đđŠđČ.đđđŠđđ đđđđ«đđąđ;
đĄđđđ„đđĄđđđ«.đđđđđđđ„đđĄ(đđźđ«đ«đđ§đđđđđ„đđĄ);
// đđ©đđąđšđ§đđ„đ„đČ, đ©đ«đšđŻđąđđ đŻđąđŹđźđđ„ đđđđđđđđ€ đĄđđ«đ } }
Implement a simple enemy AI that patrols an area.
- Create Enemy object, attach EnemyAI script to it
- Create PatrolPoints (Empty game objects) and place them for patrolling path
- Assign PatrolPoints Transform to the EnemyAI script Array
- Refer the Script below for simple Enemy AI that patrols an area
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đđ„đđŹđŹ đđđŹđđđđ«đąđ©đ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ«đđ§đŹđđšđ«đŠ[] đ©đđđ«đšđ„đđšđąđ§đđŹ;
đ©đźđđ„đąđ đđ„đšđđ đŠđšđŻđđđ©đđđ = đđ;
đ©đ«đąđŻđđđ đąđ§đ đđźđ«đ«đđ§đđđđđ«đšđ„đđ§đđđ± = đ; đŻđšđąđ đđđđ«đ() { // đđ§đąđđąđđ„đąđłđ đđ§đđŠđČ đ©đđđ«đšđ„ đąđ (đ©đđđ«đšđ„đđšđąđ§đđŹ.đđđ§đ đđĄ > đ) { đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§ = đ©đđđ«đšđ„đđšđąđ§đđŹ[đ].đ©đšđŹđąđđąđšđ§; } } đŻđšđąđ đđ©đđđđ() { đđđđ«đšđ„(); } đŻđšđąđ đđđđ«đšđ„() { đąđ (đ©đđđ«đšđ„đđšđąđ§đđŹ.đđđ§đ đđĄ == đ) đ«đđđźđ«đ§; // đđšđŻđ đđšđ°đđ«đđŹ đđźđ«đ«đđ§đ đ©đđđ«đšđ„ đ©đšđąđ§đ đđđđđšđ«đ đđđ«đ đđđđšđŹđąđđąđšđ§ = đ©đđđ«đšđ„đđšđąđ§đđŹ[đđźđ«đ«đđ§đđđđđ«đšđ„đđ§đđđ±].đ©đšđŹđąđđąđšđ§; đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§ = đđđđđšđ«đ.đđšđŻđđđšđ°đđ«đđŹ(đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§, đđđ«đ đđđđšđŹđąđđąđšđ§, đŠđšđŻđđđ©đđđ * đđąđŠđ.đđđ„đđđđąđŠđ); // đđĄđđđ€ đąđ đđĄđ đđ§đđŠđČ đĄđđŹ đ«đđđđĄđđ đđĄđ đ©đđđ«đšđ„ đ©đšđąđ§đ đąđ (đđđđđšđ«đ.đđąđŹđđđ§đđ(đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§, đđđ«đ đđđđšđŹđąđđąđšđ§) < đ.đđ) { // đđ°đąđđđĄ đđš đđĄđ đ§đđ±đ đ©đđđ«đšđ„ đ©đšđąđ§đ đđźđ«đ«đđ§đđđđđ«đšđ„đđ§đđđ± = (đđźđ«đ«đđ§đđđđđ«đšđ„đđ§đđđ± + đ) % đ©đđđ«đšđ„đđšđąđ§đđŹ.đđđ§đ đđĄ; } // đđšđđđđ đđšđ°đđ«đđŹ đ©đđđ«đšđ„ đ©đšđąđ§đ (đšđ©đđąđšđ§đđ„, đđšđ« đđđđąđ§đ đđąđ«đđđđąđšđ§) // đđđđđšđ«đ đ„đšđšđ€đđąđ«đđđđąđšđ§ = (đđđ«đ đđđđšđŹđąđđąđšđ§ - đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§).đ§đšđ«đŠđđ„đąđłđđ; // đđ«đđ§đŹđđšđ«đŠ.đ«đšđđđđąđšđ§ = đđźđđđđ«đ§đąđšđ§.đđšđšđ€đđšđđđđąđšđ§(đ„đšđšđ€đđąđ«đđđđąđšđ§); } }
Create a 2D platformer character that can run, jump, and collect coins.
- Create and Arrange Ground, and Coin Sprites in the Editor
- Add respective colliders for detection
- Add player Character
- Add Collider and RB
- Add script below:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđ : đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŹđ©đđđ = đđ;
đ©đźđđ„đąđ đđ„đšđđ đŁđźđŠđ©đ
đšđ«đđ = đđ;
đ©đ«đąđŻđđđ đđąđ đąđđđšđđČđđ đ©đ„đđČđđ«đđ;
đ©đźđđ„đąđ đđšđšđ„ đąđŹđđ§đđ«đšđźđ§đ;
đ©đ«đąđŻđđđ đŻđšđąđ đđ°đđ€đ() { đ©đ„đđČđđ«đđ = đđđđđšđŠđ©đšđ§đđ§đ<đđąđ đąđđđšđđČđđ>(); } đŻđšđąđ đ đąđ±đđđđ©đđđđ() { đđ„đšđđ đŠđšđŻđđđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđšđ«đąđłđšđ§đđđ„"); đ©đ„đđČđđ«đđ.đŻđđ„đšđđąđđČ = đ§đđ° đđđđđšđ«đ(đŠđšđŻđđđ§đ©đźđ * đŹđ©đđđ, đ©đ„đđČđđ«đđ.đŻđđ„đšđđąđđČ.đČ); đąđ (đđ§đ©đźđ.đđđđđđČđđšđ°đ§(đđđČđđšđđ.đđ©đđđ)) { đ©đ„đđČđđ«đđ.đŻđđ„đšđđąđđČ = đ§đđ° đđđđđšđ«đ(đ©đ„đđČđđ«đđ.đŻđđ„đšđđąđđČ.đ±, đŁđźđŠđ©đ đšđ«đđ); } } đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđšđ„đ„đąđŹđąđšđ§đđ§đđđ«đđ(đđšđ„đ„đąđŹđąđšđ§đđ đšđđĄđđ«) { đąđ (đšđđĄđđ«.đ đđŠđđđđŁđđđ.đđšđŠđ©đđ«đđđđ ("đđ«đšđźđ§đ")) { đąđŹđđ§đđ«đšđźđ§đ = đđ«đźđ; } } đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđšđ„đ„đąđŹđąđšđ§đđ±đąđđđ(đđšđ„đ„đąđŹđąđšđ§đđ đšđđĄđđ«) { đąđ (đšđđĄđđ«.đ đđŠđđđđŁđđđ.đđšđŠđ©đđ«đđđđ ("đđ«đšđźđ§đ")) { đąđŹđđ§đđ«đšđźđ§đ = đđđ„đŹđ; } } đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđ«đąđ đ đđ«đđ§đđđ«đđ(đđšđ„đ„đąđđđ«đđ đšđđĄđđ«) { đąđ (đšđđĄđđ«.đ đđŠđđđđŁđđđ.đđšđŠđ©đđ«đđđđ ("đđšđąđ§")) { đđđđźđ .đđšđ ("đđšđąđ§ đđšđ„đ„đđđđđ"); đđđŹđđ«đšđČ(đšđđĄđđ«.đ đđŠđđđđŁđđđ); } } }
Design a basic puzzle where the player must move objects to open a door.
- Have the player, object to move, and door Set
- Attach a script to movable object to detect collision with specified position(test)
- Open the Door upon movable object collision with specified position object
- Use scripts below:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đđ„đđŹđŹ đđ„đđČđđ«: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŹđ©đđđ = đđđ;
đ©đ«đąđŻđđđ đŻđšđąđ đđ©đđđđ() { đđ„đšđđ đŻđđ«đđąđđđ„đđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđđ«đđąđđđ„"); đđ„đšđđ đĄđšđ«đąđłđšđ§đđđ„đđ§đ©đźđ = đđ§đ©đźđ.đđđđđ±đąđŹ("đđšđ«đąđłđšđ§đđđ„"); đđđđđšđ«đ đŠđšđŻđđŠđđ§đ = đ§đđ° đđđđđšđ«đ(đĄđšđ«đąđłđšđ§đđđ„đđ§đ©đźđ, đ, đŻđđ«đđąđđđ„đđ§đ©đźđ); đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§ += đŠđšđŻđđŠđđ§đ * đŹđ©đđđ * đđąđŠđ.đđđ„đđđđąđŠđ; } } ---------------------------------- đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđšđšđ«đđ©đđ§đđšđąđ§đ: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŹđ©đđđ = đđđ;
đ©đ«đąđŻđđđ đŻđšđąđ đđ§đđšđ„đ„đąđŹđąđšđ§đđ§đđđ«(đđšđ„đ„đąđŹđąđšđ§ đšđđĄđđ«) { đąđ (đšđđĄđđ«.đ đđŠđđđđŁđđđ.đ§đđŠđ == "đđđ©đŹđźđ„đ") { đđđđźđ .đđšđ ("đđšđ„đ„đąđđđ đ°đąđđĄ đđźđđ, đđšđšđ« đąđŹ đđ©đđ§"); //đđđŹđđ đźđ§đđđąđšđ§ đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§ += đđđđđšđ«đ.đ«đąđ đĄđ * đŹđ©đđđ; //đđŠđ©đ„đđŠđđ§đđđšđšđ«đđ©đđ§đ đźđ§đđđąđšđ§ } } }
Create a simple timer that counts down and displays the time remaining.
- Add a TextMeshPro Text, position it
- Assign the script to a Manager object
Script:
đźđŹđąđ§đ đđđđ«đš;
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđđŹđđđđ§đđ đđ«: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđđ_đđđ±đ đđąđŠđđ«đđđ±đ;
đ©đźđđ„đąđ đđ„đšđđ đđąđŠđđ« = đđđ;
đ©đźđđ„đąđ đđšđšđ„ đąđŹđđąđŠđđđŻđđ«;
đ©đ«đąđŻđđđ đŻđšđąđ đđđđ«đ() { đąđ (đđąđŠđđ«đđđ±đ == đ§đźđ„đ„) { đđđđźđ .đđšđ đđ«đ«đšđ«("đđđ±đ đđšđŠđ©đšđ§đđ§đ đ§đšđ đđŹđŹđąđ đ§đđ!"); } } đ©đ«đąđŻđđđ đŻđšđąđ đđ©đđđđ() { đąđ (đđąđŠđđ« > đ) { đąđŹđđąđŠđđđŻđđ« = đđđ„đŹđ; đđąđŠđđ« -= đđąđŠđ.đđđ„đđđđąđŠđ; đđ©đđđđđđąđŠđđ«(); } đđ„đŹđ đąđ (đđąđŠđđ« <= đ) { đąđŹđđąđŠđđđŻđđ« = đđ«đźđ; đđąđŠđđ« = đ; đđ©đđđđđđąđŠđđ«(); } } đŻđšđąđ đđ©đđđđđđąđŠđđ«() { đąđ§đ đŹđđđšđ§đđŹ = đđđđĄđ.đ đ„đšđšđ«đđšđđ§đ(đđąđŠđđ«); đđąđŠđđ«đđđ±đ.đđđ±đ = đŹđđđšđ§đđŹ.đđšđđđ«đąđ§đ ("đđ"); } }
Implement a basic shooting mechanic where the player can fire projectiles.
- Make a Bullet prefab and attach a script to move forward
- Implement the Instantiate bullet in player script upon pressing space key
Scripts:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đđ„đđŹđŹ đđ„đđČđđ«đđđ«đąđ©đ: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđđŠđđđđŁđđđ đđźđ„đ„đđ;
đ©đ«đąđŻđđđ đŻđšđąđ đđ©đđđđ()
{
đąđ (đđ§đ©đźđ.đđđđđđČđđšđ°đ§(đđđČđđšđđ.đđ©đđđ))
{
đđ§đŹđđđ§đđąđđđ(đđźđ„đ„đđ, đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§, đđ«đđ§đŹđđšđ«đŠ.đ«đšđđđđąđšđ§);
}
}
}
âââââââââââââââââââ
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđźđ„đ„đđđđđ«đąđ©đ: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đšđđ đŹđ©đđđ = đđđ;
đ©đ«đąđŻđđđ đŻđšđąđ đđ©đđđđ() { đđ«đđ§đŹđđšđ«đŠ.đđ«đđ§đŹđ„đđđ(đđđđđšđ«đ.đđšđ«đ°đđ«đ * đŹđ©đđđ * đđąđŠđ.đđđ„đđđđąđŠđ); } }
Create a UI that displays the playerâs health and score.
- Create PlayerHealth Script and attach it to PlayerHealth UI that has Slider
- Take reference to the PlayerHealth Script to display Player Health
- Take reference to Score Text and reference in Player script to update score
Script:
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ.đđ;
đ©đźđđ„đąđ đđ„đđŹđŹ đđ„đđČđđ«đđđđ„đđĄ: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđ„đąđđđ« đĄđđđ„đđĄđđ„đąđđđ«;
đ©đźđđ„đąđ đđŠđđ đ đĄđđđ„đđĄđ
đąđ„đ„đđ«;
đ©đźđđ„đąđ đŻđšđąđ đđđ±đđđđ„đđĄ(đąđ§đ đĄđđđ„đđĄ) { đĄđđđ„đđĄđđ„đąđđđ«.đŠđđ±đđđ„đźđ = đĄđđđ„đđĄ; đĄđđđ„đđĄđđ„đąđđđ«.đŻđđ„đźđ = đĄđđđ„đđĄ; } đ©đźđđ„đąđ đŻđšđąđ đđźđ«đ«đđ§đđđđđ„đđĄ(đąđ§đ đĄđđđ„đđĄ) { đĄđđđ„đđĄđđ„đąđđđ«.đŻđđ„đźđ = đĄđđđ„đđĄ; } }
đźđŹđąđ§đ đđđđ«đš;
đźđŹđąđ§đ đđ§đąđđČđđ§đ đąđ§đ;
đđ„đđŹđŹ đđ„đđČđđ«đđđ«đąđ©đ: đđšđ§đšđđđĄđđŻđąđšđźđ«
{
đ©đźđđ„đąđ đđđŠđđđđŁđđđ đđźđ„đ„đđ;
đ©đźđđ„đąđ đąđ§đ đŠđđ±đđđđ„đđĄ = đđđ;
đ©đźđđ„đąđ đąđ§đ đđźđ«đ«đđ§đđđđđ„đđĄ;
đ©đźđđ„đąđ đđđŹđđ đđđŹđđđđđ«đąđ©đ;
đ©đźđđ„đąđ đąđ§đ đŹđđšđ«đ;
đ©đźđđ„đąđ đđđ_đđđ±đ đŹđđšđ«đđđđ±đ;
đ©đ«đąđŻđđđ đŻđšđąđ đđđđ«đ() { đđźđ«đ«đđ§đđđđđ„đđĄ = đŠđđ±đđđđ„đđĄ; đđđŹđđđđđ«đąđ©đ.đđđ±đđđđ„đđĄ(đđźđ«đ«đđ§đđđđđ„đđĄ); đŹđđšđ«đ = đ; đŹđđšđ«đđđđ±đ.đđđ±đ = "đđđšđ«đ: " + đŹđđšđ«đ; } đ©đ«đąđŻđđđ đŻđšđąđ đđ©đđđđ() { đąđ (đđ§đ©đźđ.đđđđđđČđđšđ°đ§(đđđČđđšđđ.đđ©đđđ)) { đđ§đŹđđđ§đđąđđđ(đđźđ„đ„đđ, đđ«đđ§đŹđđšđ«đŠ.đ©đšđŹđąđđąđšđ§, đđ«đđ§đŹđđšđ«đŠ.đ«đšđđđđąđšđ§); } đąđ (đđ§đ©đźđ.đđđđđđČđđšđ°đ§(đđđČđđšđđ.đ)) { đąđ (đđźđ«đ«đđ§đđđđđ„đđĄ > đ) { đđźđ«đ«đđ§đđđđđ„đđĄ -= đđ; đđđŹđđđđđ«đąđ©đ.đđźđ«đ«đđ§đđđđđ„đđĄ(đđźđ«đ«đđ§đđđđđ„đđĄ); } đđ„đŹđ đąđ (đđźđ«đ«đđ§đđđđđ„đđĄ <= đ) { đđźđ«đ«đđ§đđđđđ„đđĄ = đ; đđđŹđđđđđ«đąđ©đ.đđźđ«đ«đđ§đđđđđ„đđĄ(đđźđ«đ«đđ§đđđđđ„đđĄ); } //đ đšđ« đđđŹđđąđ§đ đŹđđšđ«đ đźđ©đđđđ đđđŹđ đđźđ«đ©đšđŹđ đąđŠđ©đ„đđŠđđ§đđđ đĄđđ«đ. đŹđđšđ«đ += đđ; đŹđđšđ«đđđđ±đ.đđđ±đ = "đđđšđ«đ: " + đŹđđšđ«đ; } } }