我在这里遇到一个大问题。我需要知道我目前处于哪个动画制作者状态,以便发生某些事情。我在这件事上一直在寻找很多东西,但是因为mecanim动画太新了,所以没有太多关于它的信息。至少不是为了unityscript。团结Javascript - Mecanim动画师状态
希望有人能帮助,
感谢, 罗伯特·丹
我在这里遇到一个大问题。我需要知道我目前处于哪个动画制作者状态,以便发生某些事情。我在这件事上一直在寻找很多东西,但是因为mecanim动画太新了,所以没有太多关于它的信息。至少不是为了unityscript。团结Javascript - Mecanim动画师状态
希望有人能帮助,
感谢, 罗伯特·丹
不幸的是我不知道JS,但下面的C#线应该很容易被翻译。 动画师。 GetCurrentAnimatorStateInfo返回描述当前动画器状态的AnimatorStateInfo结构。
int stateId = Animator.StringToHash("Base Layer.State Name");
Animator anim = GetComponent<Animator>();
AnimatorStateInfo currentBaseState = anim.GetCurrentAnimatorStateInfo(0);
if (currentBaseState.nameHash == stateId)
{
//you are in stateId
}
就像你在动画状态的名字上面的例子中看到被散列(由于性能原因),所以你必须以检索与特定状态相关联的整数ID散列使用Animator.StringToHash国家的名称。
它不工作 试试这个: 打印(currentBaseState.nameHash +”“+ STATEID);
然后播放动画。他们是不同的
NOVA,我意识到你的答案是2年前,但它匹配,如果你使用“完整的路径”而不是.nameHash。
obl.GetCurrentAnimatorStateInfo(0).fullPathHash == Animator.StringToHash( “基地Layer.StateName”)
感谢你的答案,这是真的,那应该很容易翻译。我仍然觉得很困难。但我会尝试更多。希望它最终解决! – 2013-04-23 21:03:58