Unity Animatorで再生中アニメーションの再生時間を取得する(Animator.Play()直後に取得する方法)
Animatorで再生中のAnimationClipの再生時間を取得する方法
環境
Unity 5.3.4f1
qiita.com
この記事を参考に実装してみようとしたら
Playの直後ではステートが切り替わっていないらしく時間が取得できなかった。
animator.Play("Jump"); AnimatorStateInfo stateInfo = feverStart.GetCurrentAnimatorStateInfo(0);
→GetCurrentAnimatorStateInfoで取得できる値がIdleのまま
解決策
Animator.Update()を一度呼ぶ。
animator.Play("Jump"); animator.Update(0); AnimatorStateInfo stateInfo = feverStart.GetCurrentAnimatorStateInfo(0);
deltaTimeを0で指定してアップデートを行う事で
GetCurrentAnimatorStateInfoで取得する値が変わることが確認できた。
→JumpのAnimatorStateInfo がで取得できる
微妙な感じもするので他にいい方法があればだれか教えてください。