Unity中怎么使用代码获得AnimatorController中所有的state
要获得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中的每个状态的名称。你可以根据需要修改代码来处理每个状态。
原文地址: https://www.cveoy.top/t/topic/jceD 著作权归作者所有。请勿转载和采集!