无法找到动画状态..,因为找不到它?

时间:2019-05-16 10:24:27

标签: c# unity3d animation

我正在尝试通过按键盘上的键来开始动画。

为此,我使用以下代码:

[HideInInspector] public Animation animation;

private void Start()
{
    animation = GetComponent<Animation>();
}

private void Update()
{
    if (Input.GetKeyDown("1"))
    {
        animation.Play("AnimationName");
    }
}

这给了我以下错误:

  

动画状态AnimationName无法播放,因为它   找不到!

虽然动画确实开始了,但是如何清除此错误?

1 个答案:

答案 0 :(得分:3)

我认为唯一可能的解释是,您的动画剪辑未标记为“旧版”。 https://www.unity3dtips.com/zh/the-animation-state-could-not-be-played-because-it-couldnt-be-found/

在此处逐步进行编辑:

必须将动画标记为旧版,以便与动画组件一起使用。

  1. 在项目窗口中,选择要播放的动画剪辑。

  2. 将检查器设置为暴露隐藏变量的调试模式,在这种情况下,它将显示“旧版”复选框。UnityInspector调试模式

  3. 勾选“旧版”复选框,然后将检查器更改回普通模式。 Unity Inspector Animation Clip Legacy复选框


但是您应该知道一件事:如果可能,应该避免使用旧的传统动画播放方式。 了解如何使用Animator组件。只需创建一个动画师,分配动画剪辑,在动画师组件中确定一个用于启动动画的布尔值,然后在代码中将其设置为true(用于基本用途)即可。 当然,在代码旁边还有一些事情要做,但是控制动画,对不同动画进行漂白和根据需要更改它们会更容易(例如,在某个时候循环或停止动画要容易得多)。 何时开始播放以及何时播放也更容易理解。