【问题标题】:UnassignedReferenceException on an assigned variable (unity 3D)分配变量上的 UnassignedReferenceException(统一 3D)
【发布时间】:2014-08-16 17:26:03
【问题描述】:

我对 Unity 非常陌生(使用 4.5),我正在尝试学习 unity 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;  }
    }
}

【问题讨论】:

    标签: c# animation scripting unity3d


    【解决方案1】:

    由于您已经将动画附加到您的游戏对象,您可以这样做:

     animation.Play("AxeSwing");
    

    【讨论】:

    • 它不起作用。 Play(AnimationClip)没有过载
    • 尝试检查 attackAnimationClip 是否为空。然后尝试打印name。有时在播放场景时,场景中的一些拖放属性会丢失(通常是预制件)。
    • 每次点击都会打印“AxeSwing”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2016-02-10
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多