如何触发动画师动画一次

时间:2015-09-16 18:06:12

标签: c# unity3d

我有一个mecanim角色,我已经在动画师中设置了动画。我添加了4个触发器来触发不同的动画。我的问题是,当按下左/右键盘按钮时,触发运行动画的最佳方法是什么?我现在拥有的是动画一次又一次地被触发,因为我的代码在Update()中。我能做什么才能触发一次并循环播放动画?

我有这个工作:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Animator))]
public class AnimationController : MonoBehaviour {

    Animator animator;

    bool running = false;

    void Start() {
        animator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update () {
        if(Input.GetButton("Horizontal")) {
            if(!running) {
                animator.SetTrigger("Run");
                running = true;
            }
        }

        if(Input.GetButtonUp("Horizontal")) {
            animator.SetTrigger("Idle");
            running = false;
        }

    }
}

但似乎完成此任务所需要的更多,特别是当动作和动画列表增长时。

1 个答案:

答案 0 :(得分:1)

animator.SetTrigger得到一个内部布尔值,当你进入状态时变为真,当它从状态出来时变为假,因此不需要bool,如果在out转换中检查Has Exit Time属性它会等待动画完成here,你可以在文档中看到它