如何检查对象是否处于空状态?
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");
}
编码愉快!
如何检查带有动画器的对象当前是否处于空状态?
我需要使用 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");
}
编码愉快!