UnityのAnimatorで設定されたAnimationClipの時間(Length)の取得方法について知ったので復習がてらメモ用に簡単に記しておきます。
では、さっそく。
public float GetAnimationClipLength(Animator animator, string clipName)
{
float clipLength = 0f;
var rac = animator.runtimeAnimatorController;
var clips = rac.animationClips.Where (x => x.name == clipName);
foreach (var clip in clips) {
clipLength = clip.length;
}
return clipLength;
}
補足ですが、対象となるAnimationClipを探すためにLinqを使用しているので、「System.Linq」をusingしておく必要があります。また、AnimationClipの名前はユニークであることを想定しているため、foreach内では特に判定処理などは行っていないです。