如何进入动画中的特定帧?

时间:2014-04-21 21:04:31

标签: c# animation unity3d

在我的游戏中,我创建了一个世界视图,让玩家可以看到从一个级别到另一个级别的进展。我所做的就是我制作了小型“踏脚石”,每个级别之间有三个。所以,如果我有三个级别,它们之间有6个小点。

我做的是创建一个精灵,其中第1帧包含1个点,第2帧包含2个点。类似的东西:

0 - - - 0 - - - 0

如果玩家击败了1级,它将会是:

0 - - - 0

所以我已经把我的精灵切片了,并添加了一个动画。默认情况下,它会一次又一次地播放。我通过将速度设置为0来停止此操作。

游戏对象被命名为“leveldots_0”,它是一个带有控制器“leveldots_0”的Animator。我想动画被命名为“leveldots”,因为它是带有播放图标的资产?我是新来的......

所以,在我的相机(所有地方)的更新方法中,我想控制点的哪个帧。例如,我知道玩家是否已经击败了1级,所以我想将这些点显示为2级。

我以为我可以抓住Animator,我会很高兴:

Animator leveldots = GameObject.Find("leveldots_0").GetComponent<Animator>();

那就好了,当我尝试下一个逻辑(???)步骤并获得动画本身时,它会变得无聊:

leveldots.animation["leveldots"].time = 1.0f;

我在哪里得到错误:

 There is no 'Animation' attached to the "leveldots_0" game object, but a script is trying to access it.

如何获取动画,并转到动画中的帧/时间?

1 个答案:

答案 0 :(得分:0)

该错误表示您没有动画组件附加到您的游戏对象。您正在使用Animator组件。 Animator组件类似于State Machine,您可以在其中将动画与某些参数相关联,还可以在动画之间进行插值。

现在,leveldots.animation是对该对象的动画组件的引用,而不是Animator。您可以简单地为另一个更改一个组件,并使用相同的动画,然后您可以访问相同的代码。或者您可以学习如何使用Animator here