设置MecAnim触发器一次,直到状态返回

时间:2016-02-22 14:50:11

标签: c# animation unity3d unity3d-mecanim

我尝试使用MecAnim在Unity中的角色上播放一次动画。我真的不熟悉这些,所以我可能完全错了。

基础层包含许多步行内容,但我尝试触发的动画位于具有空默认状态的单独Right Arm图层上。 Wave转换已应用Default -> Wave触发器,Wave -> Default转换已定时退出。

MecAnim - Right Arm Graph

然后我有一个脚本(当调试时)按下“O' 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方法,动画将播放两次。

我正在寻找一种简单的方法来确保只有在此图层的状态完全恢复为默认值时才设置触发器。

0 个答案:

没有答案