Animator の state 一覧を見るためには runtimeAnimatorController を AnimatorController
にキャストすることで可能になります
AnimatorController
は UnityEditor.Animations
のクラスなため、UniytEditor 上でしか動作させることはできません
var animator = AssetDatabase.LoadAssetAtPath<Animator>("Path"); var ac = _animator.runtimeAnimatorController as AnimatorController; foreach (var layer in ac.layers) { // state 一覧を表示する foreach (var state in layer.stateMachine.states) { } }
また、state に設定されている AnimationClip
を確認する際には ChildAnimatorState.state.motion
を利用します
motion は UnityEngine.Motion
クラスですが
public sealed class AnimationClip : Motion
AnimationClip
は Motion
を継承しているのでキャストすることで AnimationClip
が取得できます
foreach (var layer in ac.layers) { // state 一覧を表示する foreach (var state in layer.stateMachine.states) { var animationClip = state.state.motion as AnimationClip; } }