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

Posted

技术标签:

【中文标题】如何检查对象是不是处于空状态?【英文标题】:How to check if an object in an empty state?如何检查对象是否处于空状态? 【发布时间】:2017-12-11 02:19:26 【问题描述】:

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

我需要使用 SetActive(false) 禁用对象,这样:

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

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

此代码在对象处于转换状态时有效,但在空状态时无效:

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

【问题讨论】:

测试 null 并确保在对象完成每个状态之前不要将其设置为值。如果您正在运行异步,则在状态之间转换时将对象置于锁定状态。 【参考方案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");
 

玩得开心!

【讨论】:

以上是关于如何检查对象是不是处于空状态?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检查一个对象的所有孩子是不是都处于活动状态?

如何检查线程是不是处于休眠状态?

如何在android中检查3g是不是处于活动状态

如何检查 Promise 是不是处于待处理状态 [重复]

如何查看打印机是不是处于联机状态

如何检查 Google Play 订阅是不是在客户端或服务器端处于活动状态