【问题标题】:Animation seems to override element position in unity动画似乎统一覆盖元素位置
【发布时间】:2019-06-16 03:01:28
【问题描述】:

我在 Unity 中为 Panel 元素创建了动画。之后,我将元素从其原始位置移开。

此外,该元素被锚定在屏幕底部,以便无论屏幕大小如何都可以停留在那里。

问题是,当我点击Play 进行调试时,我的元素突然移动到另一个位置,我相信这是我创建动画时的原始位置。

我也许可以再次创建动画。但是,这并不能解决问题,因为不同的屏幕分辨率会稍微改变位置,因此元素的期望位置会因为动画而再次改变。

我不能创建一个独立于位置的动画吗?在积极的情况下,如何?在否定的情况下,我该如何解决这个问题?

【问题讨论】:

  • 一旦某个属性有任何关键帧,Animator 将始终覆盖您的脚本值(Animator 在所有更新后运行)。为了避免它,你可以例如不需要时只需打开Animator。或者,使用yield return new WaitUntilEndOfFrame 在 IEnumerator 中运行您的定位,以确保这是将为该帧执行的最后一个代码。
  • 但是当我再次打开它时,它会转到动画位置,它在运行时对我无效。我需要它可以在元素的当前位置播放。
  • @derHugo 您能否提供有关IEnumerator 方法的更多文档或解释?

标签: unity3d


【解决方案1】:

你要做的就是制作相对于父对象的动画。将 Animator 放在 Panel 的父级上,为其子级变换设置动画,瞧——动画现在总是相对于 Panel 的父级位置播放。

https://www.highwaynorth.com/blogs/bryan/relative-position-animation-in-unity

【讨论】:

  • 我发现有关子变换的一些问题。我选择了孩子,创建了一个动画,但是列表中没有孩子可以添加位置!
  • 您应该选择父母并为他创建动画,然后列表中将有您孩子的所有属性
  • 不得不对链接中解释的内容进行修复调整,但主要思想就在那里。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2016-04-11
  • 2018-04-22
相关资源
最近更新 更多