🚶

【Unity】再生中の現在のステート名を取得する方法

2021/04/25に公開

残念ながら直接取得する方法は無いですが名前が一致しているかどうかをif (animator.GetCurrentAnimatorStateInfo(0).IsName("Idle"))でtrue,falseで返す事ができるので以下のスクリプトのように疑似取得できます。

これでステート名がIdleの場合,文字列で"Idle"を取得できます。ちなみにtrasitionしている最中にステート名を取得すると遷移先のステート名になりましたがhasexittimeにチェックしていると遷移前のステート名を取得していたのでここは正直よくわかりませんでした。

またステート名ではないですがステートに付けたアニメーション名なら簡単に取得できます。

AnimatorClipInfo[] clipInfo = animator.GetCurrentAnimatorClipInfo(0);
string clipName = clipInfo[0].clip.name;

clipNameが現在のアニメーション名になります。

記事は以上です。

Discussion