Unity - 动画将游戏对象从其产生的位置移开?

Posted

技术标签:

【中文标题】Unity - 动画将游戏对象从其产生的位置移开?【英文标题】:Unity - animation moves game object away from where it is spawned? 【发布时间】:2016-10-29 21:17:21 【问题描述】:

好的,这很令人沮丧,但是我在预制件上创建了一个动画循环,但是在生成预制件后,动画(即位置/旋转的变化)运行动画(从而移动预制件)远离预制件所在的位置产生。

例如,如果我的预制件是在原点生成的,由于我在为它设置动画时放置预制件的位置,它会在该位置进行动画处理。

我需要我的预制件来运行动画,但在它产生的地方,而不是我为原始预制件制作动画的地方。我怎样才能解决这个问题?我做错了什么?

我使用 Unity 的动画师制作动画。

【问题讨论】:

听起来你的动画使用的是绝对定位而不是相对定位,但不确定这是否存在统一...我的经验为零 您介意张贴您的动画窗口的屏幕截图吗?听起来您不小心在动画中包含了变换位置 【参考方案1】:

这是统一动画中的常见错误。

当您必须为位置设置动画并同时从代码中更改位置时就是这种情况。

在这种情况下,最简单的解决方法是将您的视觉效果移动到子游戏对象并为该对象的位置设置动画。现在,您可以通过代码更改(父)游戏对象的位置,并且在(子)游戏对象上仍然具有类似加法的动画。

【讨论】:

【参考方案2】:

取消选中动画师中的“应用根运动”。这将阻止动画师移动对象。然后该对象将仅使用您的代码移动。

【讨论】:

这个答案应该被标记为接受..取消选中“应用根运动”帮助我。谢谢:)

以上是关于Unity - 动画将游戏对象从其产生的位置移开?的主要内容,如果未能解决你的问题,请参考以下文章

Unity 2D c# - 如何保存最后一个动画位置

在 Unity2D Sprite 中使用 Animator 将动画添加到游戏对象时无法翻译游戏对象

需要对图像进行动画处理以在每次鼠标悬停时从光标位置移开?

unity动画一个片段播放完怎么让它不会到初始状态

Unity2D:缩放游戏对象而不缩放其子对象

unity为啥无法将这个物品拖到脚本上?