统一动画错误导致动画不会因参数而改变

时间:2015-03-23 17:34:24

标签: c# animation unity3d monodevelop

我在Unity工作并尝试创建一个动画控制器,通过在按下按钮时播放不同的动画来改变玩家所面对的方向。

我一直收到此错误“ Assets / Maps / Map1 / Entities / Player / PlayerMovement.cs(6,18):警告CS0649:字段PlayerMovement.animator' is never assigned to, and will always have its default value null'

此错误不会阻止游戏播放,但动画会保持默认位置。

这是我作为播放器控制器的代码,我在其中更改动画控制器的参数。它告诉我错误在第6行空间18上。

using UnityEngine;
using System.Collections;

public class PlayerMovement : MonoBehaviour {
Animator animator;
public float movementSpeed = 100.0f;
public bool Movement = true;
public int Direction = 0;

// Use this for initialization
void Start () {
    animator.GetComponent<Animator> ();
}

// Update is called once per frame
void Update () {

    if (Movement == true) {
        if (Input.GetKey (KeyCode.W)) {
            transform.Translate ((Vector2.up) * movementSpeed * Time.deltaTime);
            animator.SetInteger("Direction",0);
        }
        if (Input.GetKey (KeyCode.A)) {
            transform.Translate ((-Vector2.right) * movementSpeed * Time.deltaTime);
            animator.SetInteger("Direction",270);
        }
        if (Input.GetKey (KeyCode.S)) {
            transform.Translate ((-Vector2.up) * movementSpeed * Time.deltaTime);
            animator.SetInteger("Direction",180);
        }
        if (Input.GetKey (KeyCode.D)) {
            transform.Translate ((Vector2.right) * movementSpeed * Time.deltaTime);
            animator.SetInteger("Direction",90);
        }
        else{
            animator.SetInteger("Direction",360);
        }
    }

}
}

这是一个Imgur链接到屏幕截图的动画师gui团结。我会把它们直接放在这个屏幕上,但我没有权限这样做。

Imgur Link

1 个答案:

答案 0 :(得分:0)

我相信这是罪魁祸首:

   void Start () {
    animator.GetComponent<Animator> ();
     }

它没有被分配它应该是这样的:

               void Start ()
               {
             //you have to use the variable u declared and assing it to the animator
              animator = this.GetComponent<Animator> ();
              }

希望能解决它。