如何在Animator组件的图层中获取当前状态的名称?我意识到我可以将名称与GetCurrentAnimatorStateInfo(0).IsName("statename")
进行比较,但是我不想在层中的每个状态下都运行该名称。是否可以简单地获取当前状态的名称?
最佳答案
我认为这是不可能的。我能想到的唯一好的解决方案是使用switch
语句和nameHash
像这样:
Animator animator = GetComponent<Animator>();
// Get the id of all state for this object
int runId = Animator.StringToHash("Run");
int jumpId = Animator.StringToHash("Jump");
AnimatorStateInfo animStateInfo = animator.GetCurrentAnimatorStateInfo(0);
switch (animStateInfo.nameHash)
{
case runId:
Debug.Log("Current state is Run");
break;
case jumpId:
Debug.Log("Current state is Jump");
break;
default:
Debug.Log("Current state is not in this list");
break;
}