unity获取动画状态机列表
使用以下代码可以获取当前对象的所有动画状态机列表:
Animator animator = GetComponent<Animator>();
AnimatorController animatorController = animator.runtimeAnimatorController as AnimatorController;
List<AnimatorStateMachine> stateMachineList = new List<AnimatorStateMachine>();
foreach (ChildAnimatorState state in animatorController.layers[0].stateMachine.states)
{
if (!stateMachineList.Contains(state.state.motion))
{
stateMachineList.Add(state.state.motion);
}
}
foreach (AnimatorStateMachine stateMachine in stateMachineList)
{
Debug.Log("Animation State Machine: " + stateMachine.name);
}
这段代码将获取当前对象的第一个动画层的所有状态机,并打印出它们的名称。如果要获取其他层的状态机,可以更改animatorController.layers[0]的索引。
原文地址: https://www.cveoy.top/t/topic/b4sF 著作权归作者所有。请勿转载和采集!