投稿者 tel | 2015年2月13日

Unityでアニメーションをもう一度再生する

Unity の Animator でワンタイムのアニメーションをもう一回再生するときの方法。

ss

下のようにアニメーションが1つのステートで再生する場合、アニメーション再生が終わってもステートは変わらない。

state

このとき Any State から Trigger などで遷移を作って Animator.SetTrigger してもアニメーションを再度再生することはできない。
再度再生するにはオブジェクトをいったん無効にして再度有効にするか、もしくは Animator.Play を呼び出す。

Animator _animator = GetComponent<Animator>();
var info = _animator.GetCurrentAnimatorStateInfo(0);
_animator.Play(info.nameHash, 0, 0.0f);

Play の第三引数として再生開始時間に0を渡すとアニメーションを頭から再生できる。

非推奨のメソッドで Animator.ForceStateNormalizedTime でも再生時間を0にしたらできそう。


コメントを残す

カテゴリー