使用以下代码可以获取当前对象的所有动画状态机列表:

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]的索引。

unity获取动画状态机列表

原文地址: https://www.cveoy.top/t/topic/b4sF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录