@base4ka_lox

Почему персонаж перестал ходить после добавления анимаций?

Добрый вечер,прошу помочь, если кто-то понимает. Вообщем начал работать с анимациями персонажа(всё необходимое создал и через аниматор их связал,вроде бы всё проигрывается),но проблема в том,что персонаж перестал ходить и прыгать(до этого было всё в порядке).Я прикрепляю скрипт(я и сам примерно понимаю, что тут скорее всего не получается из за того что и движение персонажа и запуск анимаций у меня прикреплены на anim).Ошибок у меня тут конечно целая куча наверно

6037ec8c6d51d644427579.jpeg

public class PlayerController : MonoBehaviour
{

    public float speed;
    public float jump;
    bool ground;
    bool right;
    Rigidbody2D rb;
    private float moveInput;
    


    private bool isGrounded;
    public Transform feetPos;
    public float checkRadius;
    public LayerMask WhatIsGround;


    private Animator anim;

    void Start()
    {
        anim = GetComponent<Animator>();
        rb = GetComponent<Rigidbody2D>();
        
        right = true;
    }

    private void Update()
    {

        isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, WhatIsGround);
        if(isGrounded == true && Input.GetKeyDown(KeyCode.Space))
        {
            rb.velocity = Vector2.up * jump;
            anim.SetTrigger("takeoff");
        }


        if(isGrounded == true)
        {
            anim.SetBool("isJumping", false);
        }
        else
        {
            anim.SetBool("isJumping", true);
        }



        if (right == true)
        {
            transform.localRotation = Quaternion.Euler(0, 0, 0);
        }
        else if (right == false)
        {
            transform.localRotation = Quaternion.Euler(0, 180, 0);
        }

        if (Input.GetKeyDown(KeyCode.D))
        {
            right = true;
        }
        else if (Input.GetKeyDown(KeyCode.A))
        {
            right = false;
        }

        if (ground == true)
        {
            if (Input.GetKey(KeyCode.D))
            {
                anim.SetBool("isRunning", true);
            }
            else if (Input.GetKey(KeyCode.A))
            {
                anim.SetBool("isRunning", true);
            }
            else
            {
                anim.SetBool("isRunning", false);
            }
        }
    }
   
    private void FixedUpdate()
    {
        moveInput = Input.GetAxis("Horizontal");

        if (moveInput == 0)
        {
            anim.SetBool("isRun", false);
        }
        else
        {
            anim.SetBool("isRun", true);
        }
        rb.velocity = new Vector2(Input.GetAxis("Horizontal") * speed, rb.velocity.y);
    }

    
}
  • Вопрос задан
  • 1055 просмотров
Пригласить эксперта
Ответы на вопрос 1
ReyGrau
@ReyGrau
Junior Unity Developer
Хотя бы скинул какие объекты к персонажу перекреплены, возможно ты случайно выключил или удалил PlayerController у персонажа.

А так код конечно написан ужасно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы