我有一个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;
}
}
}
但似乎完成此任务所需要的更多,特别是当动作和动画列表增长时。
答案 0 :(得分:1)
animator.SetTrigger
得到一个内部布尔值,当你进入状态时变为真,当它从状态出来时变为假,因此不需要bool,如果在out转换中检查Has Exit Time
属性它会等待动画完成here,你可以在文档中看到它