Movement code

Vigtige variabler

Rigidbody2D rb;
int wholeNumber= 16;
float decimalNumber = 4.54f;
string text = "bla bla";
bool boolean = false;

Lav en variabel, så Rigidbody ikke skal kaldes hele tiden

public class PlayerMovement : MonoBehaviour
{
   Rigidbody2D rb;

private, så det kun er det aktuelle script, der har adgang til variablen

rb skal oprettes før scriptet startes, så det kan tilgås alle steder fra i scriptet.

Hoppekode med rb som variabel

Jump er hard-coded til 14. Her skal der naturligvis også være en variabel. Endnu bedre, bruger vi den indbyggede InputManager i Unity.

public class PlayerMovement : MonoBehaviour
{
   private Rigidbody2D rb;
   // Start is called before the first frame update
   void Start()
   {
       rb = GetComponent<Rigidbody2D>();
   }
 
   // Update is called once per frame
   void Update()
   {
       if (Input.GetKeyDown("space"))
       {
           rb.velocity = new Vector2(0, 14);
       }
   }
}

Input Manager

Unity: Edit → Project Settings → Input Manager

Denne manager kan man tilgå fra PlayerMovement Scriptet

Vi udskifter kode, der peger på “space”

if (Input.GetButtonDown("Jump"))

GetButtonDown refererer til inputmanager

Så nu tilgår vi “Jump” i inputmanageren. Den er på forhånd indstillet til “space”.

Vandret bevægelse

For at flytte Player til siderne, bruger vi “Horizontal Axis” i Inputmanageren.

I stedet for venstre eller højre, bruger vi værdierne på x-aksen

public class PlayerMovement : MonoBehaviour
{
   private Rigidbody2D rb;
   // Start is called before the first frame update
   void Start()
   {
       rb = GetComponent<Rigidbody2D>();
   }
 
   // Update is called once per frame
   void Update()
   {
       float dirX = Input.GetAxis("Horizontal");
       rb.velocity = new Vector2(dirX * 7f, rb.velocity.y);
 
       if (Input.GetButtonDown("Jump"))
       {
           rb.velocity = new Vector2(rb.velocity.x, 14f);
       }
   }
}

GetAxisRaw: “Raw” gør at player stopper når knappen slippes i stedet for at slide

float dirX = Input.GetAxisRaw("Horizontal");

Træk kameraet ned på Player for at det følger ham

Når Player rammer noget skævt, roterer kameraet med ham. For at undgå det, Klikker du på Player i Hierakiet → Klik på Constraints → Freeze rotation z (så drejer han ikke længere rundt når han falder)