【问题标题】:Unity Mecanim - play animation in certain amount of timeUnity Mecanim - 在一定时间内播放动画
【发布时间】:2020-03-02 05:02:11
【问题描述】:

编程 RPG 游戏,我想根据持续时间控制动画速度。

例如,角色必须在 X 秒内施法。我想快速播放动画状态,以便动画在 X 秒内准确完成。

-X 在开始动画之前确定。

-我有多个角色的多个动画,所以我想避免通过手动计算和调整动画师中的动画剪辑速度来做到这一点

如何实现此行为?

【问题讨论】:

  • 谢谢,编辑了措辞。
  • 问题不在于措辞;为了给出指示,我们需要知道你现在在哪里以及你想去哪里。诸如“这可能吗?”、“帮助我”、“我怎样才能实现它?”之类的语句不这样做。
  • 我不明白。我描述了我在 Unity 中的目标非常精确的行为,但不知道如何实现。我也相信这样的问题将来可能对其他人有所帮助。我不是想不尊重,但我不明白你的意思。
  • 我已经提供了一个链接,详细解释了这些问题的问题所在,为什么你没有得到任何好的答案,以及你应该做什么。特别注意“那么应该问什么?”之后的段落。另一个不错的网站解释了为什么您可能不应该在after you have some code to show 之前提问。

标签: c# unity3d unity3d-mecanim


【解决方案1】:

您可以更改动画组件的速度。问题是您应该在游戏循环的每次迭代(或每次 Y 次)上更新速度。

动画速度可以是 [0-1],其中 1 是默认值。您需要获取动画的长度并根据您的 X 和动画进行一些计算。

类似: float length = gameObject.animation.clip.length;

newSpeed = ....

https://answers.unity.com/questions/902029/how-to-get-and-change-animation-speed-of-animator.html

【讨论】:

  • gameObject.animation.clip.length 我认为是针对旧动画系统的?在 Mecanim 中这样做似乎要复杂得多。
  • @Immersive 是的,它设法做到了,但正如 EvilWarren 在那个线程中指出的那样,在你切换动画的帧上不起作用(这是你想要获取信息的帧)带来一整套新问题。
猜你喜欢
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多