Unity Animation не воспроизводится, вместо этого ошибка - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть этот код:

public class BasicMovement : MonoBehaviour {

    private Animation anim;

    public float jumpPower = 15f;
    private Rigidbody2D rb;
    bool canJump;

    // Use this for initialization
    void Start () {
        anim = this.gameObject.GetComponent<Animation>();
        anim.Play("Run");
        rb = gameObject.GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update () {
        // FIX LATER for collider, not position
        if (rb.position.y <= -2.95) // this is line 23
        {
            canJump = true;
        }

        if (canJump)
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {

                rb.velocity = new Vector2(rb.velocity.x, jumpPower);
                canJump = false;
            }
        }
    }
}

Я получаю эту ошибку:

Ссылка на объект не установлена ​​на экземпляр объекта: 23

По какой-то причине, если я вычеркну anim.Play("Run");, тогда ошибки вообще не будет.

Кроме того, я сделал анимацию RUN и JUMP для gameObject, которому назначен этот скрипт.

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Мне пришлось использовать anim = this.gameObject.GetComponent<Animator>(); вместо анимации, и это сработало.

0 голосов
/ 08 декабря 2018

GameObject, в котором есть этот скрипт, не имеет добавленного компонента Animation, что дает вам null, когда вы пытаетесь получить его с помощью anim = this.gameObject.GetComponent<Animation>();

Убедитесь, что ваш компонент Animationдобавляется в GameObject и попробуйте снова!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...