Unity 3d显示特定的动画帧

时间:2013-11-19 08:20:47

标签: animation unity3d

我正在为2D游戏尝试新的统一3D选项。我正在尝试创建根据我所做的操作而改变的背景。因此,如果我按下按钮一个,我会得到精灵一个作为背景,如果两个我得精灵二。由于我有32个选项,我想出最好的方法是拥有一个Animator,根据按钮点击改变帧。所以我创建了动画师和动画。但问题是我无法设置停止动画显示选定框架的时间。

我这样想:

Animator ani=background.GetComponent<Animator>();
ani.animation["field_back_anim"].time=0.5f;
ani.speed=0;

但是在第二行失败时出现了这个错误:

MissingComponentException: There is no 'Animation' attached to the "background" game object, but a script is trying to access it.
You probably need to add a Animation to the game object "background". Or your script needs to check if the component is attached before using it.

但是,如果我没有代码,动画只会播放所有16帧。所以我认为毕竟有动画。

在后台GameObject上我首先有两个组件是精灵渲染器,第二个是动画师。当我在Animator视图中打开animator时,我看到绿色矩形表示任何状态,黄色表示“field_back_anim”。我不知道我做错了什么。

除了执行以下操作的任何其他解决方案之外,我也会这样做。

谢谢!

1 个答案:

答案 0 :(得分:2)

动画师组件用于控制许多动画片段之间的转换。如果您要在游戏对象上播放动画片段,动画组件是正确的,不是动画师。删除动画师并将动画组件添加到检查器中的后台游戏对象中。如果将animation属性设置为field_back_anim,则您的游戏对象将具有良好的动画效果。操作代码应如下所示进行更改。

Animation ani = background.GetComponent<Animation>();
ani["field_back_anim"].time = 0.5f;
ani["field_back_anim"].speed = 0;