如何检查对象是否处于空状态?

How to check if an object in an empty state?

如何检查带有动画器的对象当前是否处于空状态?

我需要使用 SetActive(false) 禁用该对象,以便:

如果对象处于转换状态,此代码有效,但如果它处于空状态,则无效:

MyObject.GetComponent<Animator>().IsInTransition(0)

好的,我是这样做的。

我假设您知道要在其中禁用对象的 "default empty state" 的名称。

声明一个静态 int 变量,其中 "default empty state" 作为要散列的字符串,如下所示:

 static int VAR-NAME = Animator.StringToHash("Base.NAMEOFSTATE");

这是假设您的基础层名为 "Base"。

然后在 Update() 中,将当前状态放入这样的变量中:

currentState = anim.GetCurrentAnimatorStateInfo(0);

然后使用 If 语句检查您的 "default empty state" 是否等于当前状态,如下所示:

if (currentState.nameHash == VAR-NAME){
      Debug.Log("Do Stuff Here");
 }

编码愉快!