Lav en “Tag” der hedder PowerUp, og sæt den på den sprite du vil have til at udløse din powerup.
Først skal du have en variabel, der styrer hvornår du får adgang til at dobbelthoppe, og en variabel, der styrer selve dobbelthoppet.
private bool activateCanDoubleJump = false;
private bool canDoubleJump = false;
Nu ændrer du på dit PlayerMovement-script, så bevægelsesdelen ser således ud:
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "PowerUp")
{
Destroy(collision.gameObject);
activateCanDoubleJump = true;
}
}
// Her styres bevægelserne
private void Update()
{
dirX = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(dirX * moveSpeed, rb.velocity.y);
// Hop med power up mulighed
if (IsGrounded())
{
canDoubleJump = true;
}
if (Input.GetButtonDown("Jump"))
{
if (IsGrounded())
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
else
{
if (canDoubleJump && activateCanDoubleJump)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
canDoubleJump = false;
}
}
}
UpdateAnimationState();
}