已分配变量的UnassignedReferenceException(统一3D)

时间:2014-06-26 00:28:24

标签: c# animation scripting unity3d

我对Unity非常陌生(使用4.5)并且我试图学习统一3D。我有这个小游戏"我只想挥动斧头杀死蜘蛛。我创建了名为" AxeSwing"和一个小脚本,当我点击我的左按钮时触发动画。问题是我有一个错误说我的变量" attackAnimationClip"没有分配给它。正如您在屏幕截图中看到的那样,它被分配,当我左键单击动画触发器并返回到我的IdleAxe动画时。

这里是剧本:

[RequireComponent(typeof(Animation))]
public class AttackAnimation : MonoBehaviour {
    public AnimationClip attackAnimationClip;
    // Update is called once per frame
    void Update () {
        if (Input.GetMouseButton(0))
            animation.Play(attackAnimationClip.name);
        else if (IsAttackFinished)
            animation.CrossFade(animation.clip.name);
     }

    private bool IsAttackFinished
    {
        get { return animation[attackAnimationClip.name].time > animation[attackAnimationClip.name].length;  }
    }
}

Here's the error from the debugger, and it shows that my variable is assigned.

1 个答案:

答案 0 :(得分:1)

由于您已经将动画附加到GameObject,您可以这样做:

 animation.Play("AxeSwing");