【发布时间】:2023-03-31 10:35:01
【问题描述】:
在我的游戏中,我创建了一个世界观,让玩家看到从一个关卡到另一个关卡的进展。我所做的是我做了小的“垫脚石”,每个级别之间三个。因此,如果我有三个级别,那么它们之间的 6 个小点。
然后我创建了一个精灵,其中第 1 帧包含 1 个点,第 2 帧包含 2 个点。比如:
0 - - - 0 - - - 0
如果玩家击败了 1 级,它看起来像:
0 - - - 0
所以我已经将我的精灵切片,并添加了一个动画。默认情况下,它会一遍又一遍地播放。我通过将速度设置为 0 来停止此操作。
游戏对象被命名为“leveldots_0”,它是一个带有控制器“leveldots_0”的动画师。我猜动画被命名为“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.
如何获取动画,并转到动画中的帧/时间?
【问题讨论】:
-
因为你是使用动画师,为什么不创建3个动画。 “Anim 1”只是您的“0”图标,并使用 bool 单向过渡到“Anim 2”,即您的移动点动画。然后将“Anim 2”过渡设置为“Anim 3”并带有退出时间条件。