Unity の Animator でワンタイムのアニメーションをもう一回再生するときの方法。
下のようにアニメーションが1つのステートで再生する場合、アニメーション再生が終わってもステートは変わらない。
このとき 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にしたらできそう。
コメントを残す