为2D对象设置动画时,Transform.Translate()停止工作

时间:2019-06-18 16:09:00

标签: c# unity3d animation game-development

我正在开发自己正在开发的2D游戏中的敌方AI。这个敌人游泳了,我想为敌人制作一个“浮动效果”动画,所以我制作了一个动画,其中游戏对象的Y轴上下反弹。

enter image description here

我使用float移动游戏中的敌人,直到我制作了动画为止,效果都很好。但是,在播放动画时,敌人无法向任何方向移动。

double

1 个答案:

答案 0 :(得分:1)

一旦您的某个动画师的关键帧处于某个特定属性的 any 状态,该动画师将始终否决脚本中所做的所有更改,因为动画更新已全部完成after Update。您可以尝试将代码移至LateUpdate

或者在您的特定情况下,您根本不想将位置的x组成关键帧。只需从动画中删除该位置的x(和z)组件的所有关键帧,即可仅 y具有关键帧。这应该可以解决您的问题。


或者在您的Animator上,在高层中的GameObject上使用您的移动脚本,这意味着添加一个新的GameObject,将动画对象作为它的子对象,然后将您的移动脚本放置在该对等对象上