我正在尝试使用 MecAnim 在 Unity 中的角色上播放单个动画。我真的不熟悉这些,所以我的方法可能完全错误。
基础层包含很多步行的东西,但我试图触发的动画是在一个单独的Right Arm
层上,默认状态为空。有一个Wave
应用于Default -> Wave
转换的触发器,并在该触发器上设置了一个定时退出Wave -> Default
。
然后我有一个脚本(在调试时),当您按下“O”并导致角色挥动一次时会触发该脚本。
if (Input.GetKey(KeyCode.O))
{
AnimatorStateInfo currentState = this.animator.GetCurrentAnimatorStateInfo(1);
if (currentState.IsName("Right Arm.Default"))
{
Debug.Log("Waving triggered");
this.animator.SetTrigger("Wave");
}
}
动画按预期播放,但控制台显示IsName
检查总是通过,这让我觉得我做错了什么。
过渡需要几分之一秒才能完成,然后如果SetTrigger
再次调用该方法,动画将播放两次。
我正在寻找一种简单的方法来确保仅在该层的状态完全恢复为默认值时才设置触发器。