【问题标题】:[Unity3D]How to get reference to a specific Animation Clip in Animator[Unity3D]如何在Animator中获取对特定动画剪辑的引用
【发布时间】:2016-01-18 17:56:30
【问题描述】:

在过去的 2 个小时里,我一直在到处搜索,但找不到任何资源来帮助我。文档令人困惑(尤其是动画),我找到的每条信息都是针对具有不同动画系统的早期版本的 Unity。无论如何,我有一个附加了 Animator 组件的 GameObject。 Animator Controller 有 4 种动画状态可供使用。我有一个附加到我的游戏对象的脚本,我可以找到如何执行以下操作: 1)获取任何特定剪辑的长度 2) 更改任何特定剪辑的速度。

animator.speed =(某个数字)不起作用,因为它改变了所有剪辑的速度。我想在运行时更改特定剪辑的速度。有没有办法可以按名称搜索动画剪辑并更改剪辑速度?或者有没有办法可以制作一个公共的 AnimationClip,拖放剪辑,然后编辑剪辑的速度?我想在运行时更改所有这些,我知道我可以单击动画剪辑并以这种方式更改速度。此外,正如我之前列出的,我需要获取动画剪辑的长度。我假设如果我可以改变动画剪辑的速度,我可以获得剪辑的长度,因为我有它的参考。有什么帮助吗?

【问题讨论】:

  • 你试过设置 AnimationState.speed 吗?

标签: unity3d


【解决方案1】:

用途:

AnimationUtility.GetAnimationClips(GameObject)

通过使用它,您将从当前游戏对象中获取数组中的所有动画剪辑。然后你会得到你想要的一切。

查看文档:

AnimationUtility.GetAnimationClips AnimationClip

【讨论】:

  • 获取动画剪辑没有帮助,因为您无法修改它们的速度。您需要 Animator 进行全局控制或 AnimationState 进行本地控制。剪辑是不可变的。唯一接近速度的是帧速率,但它是只读的。
  • 是的,你是对的。由于我的声誉,我将此作为答案发布 - 我无法发表评论。至少他可以访问“长度”。这和你的答案(AnimationState.speed)应该可以完成这项工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
相关资源
最近更新 更多