【Unity】Animatorに設定されているlayerとstateを実行時に取得してみた

アニメーションビューワーの用なものを作ろうと思った時に、実行時にlayerやstate名が取得できると便利だなと思って調べてみると、UnityEditor.Animations.AnimatorControllerというものがあったので使ってみました!


環境

  • Unity2018.3.7f1
  • MacBookPro Mojave v10.14.3

実装

AnimatorのruntimeAnimatorControllerをUnityEditor.Animations.AnimatorControllerでキャストしてやると、情報が取れるようです。

デバッグ出力した内容を確認してみると、意図した情報が取れていました。この処理とUnityちゃんを使ってUIからlayerとstateを選択できるものを作ってみました。

実行したものがこちらです。


まとめ

今回使った、UnityEditor.Animations.AnimatorControllerはエディタでしか使えませんが、layer、state名を調べたり手動で書いてアニメーション切り替えをしたりしなくてもいいのはとても便利でした。他にも機能があるようなので別の機会に試してみたいと思います!


参考url