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

时间:2017-07-06 22:12:25

标签: c# unity3d states animator

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

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

  • 如果对象处于状态之间的转换中 - 完成转换然后将其禁用。

  • 如果对象处于默认空状态 - 立即禁用它。

如果对象处于转换状态,此代码可以工作,但如果处于空状态则不起作用:

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

1 个答案:

答案 0 :(得分:1)

好的,我就是这样做的。

我假设您知道要禁用对象的“默认空状态”的名称。

声明一个静态int变量,该变量具有“默认空状态”作为字符串,如下所示:

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

这假设你的基础层被称为“基础”。

然后在Update()中,将当前状态放在如下变量中:

currentState = anim.GetCurrentAnimatorStateInfo(0);

然后使用If语句检查“默认空状态”是否等于当前状态:

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

有趣的编码!

相关问题