1
如何检查一个带动画的对象是否处于空状态?如何检查一个空状态的对象?
我需要禁用使用SETACTIVE(假)的对象,这样:
如果对象是在状态之间的转换 - 完成过渡,然后将其禁用。
如果对象处于默认空状态 - 立即禁用它。
此代码的工作,如果对象是处于转型期,但如果是在空不工作状态:
MyObject.GetComponent<Animator>().IsInTransition(0)
如何检查一个带动画的对象是否处于空状态?如何检查一个空状态的对象?
我需要禁用使用SETACTIVE(假)的对象,这样:
如果对象是在状态之间的转换 - 完成过渡,然后将其禁用。
如果对象处于默认空状态 - 立即禁用它。
此代码的工作,如果对象是处于转型期,但如果是在空不工作状态:
MyObject.GetComponent<Animator>().IsInTransition(0)
确定这里就是我做的。
我假设你知道要禁用在对象的“默认的空状态”的名称。
声明具有“默认空状态”作为一个字符串静态int变量这样的散列:
static int VAR-NAME = Animator.StringToHash("Base.NAMEOFSTATE");
这是假设您的基础层被称为“基础”。
在更新(的话),把当前状态的变量是这样的:
currentState = anim.GetCurrentAnimatorStateInfo(0);
,然后使用IF语句来检查,如果你的“默认为空状态”等于这样的当前状态:
if (currentState.nameHash == VAR-NAME){
Debug.Log("Do Stuff Here");
}
玩得开心编码!
非常感谢! :) – Rumata
测试null,并确保在对象完成每个状态之前不要将对象设置为值。如果您正在运行异步,则将对象置于锁定状态,同时在状态之间转换。 – jdweng