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)