【问题标题】:How to finish current animation in Unity3D Animator?如何在 Unity3D Animator 中完成当前动画?
【发布时间】:2016-12-12 10:30:58
【问题描述】:

我在 Animator 中创建了一个动画,其中一部分 UI 从屏幕的一侧过渡到另一侧。 如何添加一个选项以立即完成动画并将动画对象放在其最终位置?

因为动画是由第 3 方创建的,而且我不知道预先的位置,所以我不能只是停止动画并将对象的位置设置为最后一个。

谢谢

【问题讨论】:

  • 差不多。线程是关于立即改变动画状态。我不想更改状态,我希望当前状态立即完成。
  • 为误解道歉.. 你是说你不知道动画中物体的最终位置吗?好吧,如果你能看到动画组件,打开动画窗口并找到它有多难?
  • 在运行时完成并且您不知道其他人将如何修改动画时非常困难。会有多少物体,它们从哪里流向哪里等等。换句话说,我必须在最后一帧设置动画。
  • 好吧。如果是这样,我现在必须回答你的问题:使用AnimationState.length 和AnimationState.time 来做你正在尝试的事情。我没有将其作为答案,因为我没有尝试过。让我知道这是否有效,我会发布答案

标签: animation unity3d


【解决方案1】:

你可以做的是这样的:

yourGameObject.GetComponent<Animation>().GetClip("YOUR_CLIP_NAME").SampleAnimation(yourGameObject, GetComponent<Animation>()["YOUR_CLIP_NAME"].length);

但这只有在您事先知道自己的 AnimationClip 名称时才有效...

希望这会有所帮助,

【讨论】:

  • 谢谢Kardux,是的,我知道前面剪辑的名称。
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多