Dash

Voce pode gerar um codigo em unity onde o personagem pode se mover, pular e fazer dash?
 avatar
unknown
csharp
12 days ago
1.7 kB
1
Indexable
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed = 5f; // velocidade do personagem
    public float jumpForce = 7f; // força do salto do personagem
    public float dashDistance = 10f; // distância do dash

    private Rigidbody2D rb;
    private bool isGrounded;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void FixedUpdate()
    {
        float moveInput = Input.GetAxis("Horizontal"); // obtém a entrada horizontal (A/D ou Esquerda/Direita)
        rb.velocity = new Vector2(moveInput * speed, rb.velocity.y); // movimenta o personagem horizontalmente

        if (Input.GetButtonDown("Jump") && isGrounded) // se o botão de salto é pressionado e o personagem está no chão
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce); // aplica força vertical para o personagem pular
            isGrounded = false; // define que o personagem não está mais no chão
        }

        if (Input.GetButtonDown("Dash")) // se o botão de dash é pressionado
        {
            float dashDirection = Input.GetAxisRaw("Horizontal"); // obtém a direção horizontal do dash
            rb.velocity = new Vector2(dashDirection * dashDistance, 0f); // aplica uma força horizontal maior para o personagem se mover rapidamente na direção do dash
        }
    }

    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Ground")) // se o personagem colidiu com o objeto com a tag "Ground"
        {
            isGrounded = true; // define que o personagem está no chão
        }
    }
}
Leave a Comment