Ошибка UnassignedReferenceException продолжает появляться при подключении анимации к движению - PullRequest
1 голос
/ 24 марта 2020

Я - новый программист, делающий 2D-игру сверху вниз в Unity с c#, и я продолжаю получать сообщение об ошибке:

UnassignedReferenceException: переменный аниматор PlayerMovement не был назначен. Возможно, вам нужно назначить переменную animator сценария PlayerMovement в инспекторе. UnityEngine.Animator.SetFloat (имя System.String, значение System.Single) (при <049be2afe36f487eb06ef49d51a0bab6>: 0) PlayerMovement.Update () (в активах / скриптах / PlayerMovement.cs: 23)

я не знаю Не знаю, что это значит, но я полагаю, что я не назначил переменную PlayerMovement должным образом? Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{

    public float moveSpeed = 5f;

    public Rigidbody2D rb;
    public Animator animator;

    Vector2 movement;

    // Update is called once per frame
    void Update()
    {
        // Input
        movement.x = Input.GetAxisRaw("Horizontal");
        movement.y = Input.GetAxisRaw("Vertical");
        movement = movement.normalized;

        animator.SetFloat("Horizontal", movement.x);
        animator.SetFloat("Vertical", movement.y);
        animator.SetFloat("Speed", movement.sqrMagnitude);
    }

    void FixedUpdate()
    {
        // Movement and physics
        rb.MovePosition(rb.position + movement * moveSpeed * Time.fixedDeltaTime);
    }
}

Любая помощь приветствуется:)

1 Ответ

1 голос
/ 24 марта 2020

Нет ссылки на объект для вызова метода SetFloat () . Вы должны создать экземпляр объекта Animator в методе Start, чтобы избежать этого исключения:

void Start()
    {
        //Get the animator, which you attach to the GameObject you are intending to animate.
        animator= gameObject.GetComponent<Animator>();
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...