要获得AnimatorController中的所有状态(state),可以使用AnimatorController的layers属性来获取控制器中的所有层级(layers),然后遍历每个层级的stateMachine属性来获取每个状态机(state machine),最后遍历每个状态机的states属性来获取每个状态。

以下是一个示例代码:

using UnityEngine;

public class GetAnimatorStates : MonoBehaviour
{
    void Start()
    {
        Animator animator = GetComponent<Animator>();
        AnimatorController animatorController = animator.runtimeAnimatorController as AnimatorController;

        // 遍历每个层级
        foreach (AnimatorControllerLayer layer in animatorController.layers)
        {
            // 获取每个层级的状态机
            AnimatorStateMachine stateMachine = layer.stateMachine;

            // 遍历每个状态机的状态
            foreach (ChildAnimatorState state in stateMachine.states)
            {
                // 获取状态的名称
                string stateName = state.state.name;
                Debug.Log("State Name: " + stateName);
            }
        }
    }
}

这段代码将会打印出AnimatorController中的每个状态的名称。你可以根据需要修改代码来处理每个状态。

Unity中怎么使用代码获得AnimatorController中所有的state

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

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