获取动画长度 - Unity

时间:2014-03-27 03:19:52

标签: c# animation unity3d

我需要屈服于基础图层中动画的长度并命名为“TurnAround”。它使角色显示它们转动的动画。我如何获得这种转变?那我怎么得到时间长度?

Turnaround是一个AnimationState吗?它是AnimationStateInfo吗?它是Animator中具有过渡功能的动画之一。

我有anim = GetComponent<Animator>();来获取Animator。我在看turnAround = anim.getCurrentAnimatorStateInfo,但不认为这是对的。

由于

1 个答案:

答案 0 :(得分:1)

它位于AnimationClip之下。

接听电话:

float length = gameObject.animation.clip.length;

修改

由于您使用的是动画师,因此您可以这样做:

Animator animator = GetComponent<Animator>();

float length = animator.animation.clip.length;

Animator继承Animation,您可以致电Animation的成员。

编辑2

这是绝对有效的最终方式:

Animation turnBack; //assign in inspector

...

float length = turnBack.clip.length;

turnBack位于顶部,因此它是一个全局变量,然后在统一编辑器(检查器)中为其分配动画。您也可以使用一系列动画执行此操作,并通过索引

引用它们
Animation[] animations = new Animation[max];

float length = animations[index].clip.length;