【发布时间】:2018-10-30 23:13:06
【问题描述】:
我创建了一个名为“m4a4animator”的动画师。在它里面,主函数叫做“idle”(无),还有其他2个状态:“shoot”(mouse0)和“reload”(R)。这 2 个动画状态转换为“空闲”。现在,一切正常......但我唯一的问题是:如果我正在重新加载并按下鼠标0(射击),动画运行状态立即变为射击......但我想阻止它.
现在的问题是:如何在动画运行时停止某些动画更改?
这是我的脚本:
using UnityEngine;
using System.Collections;
public class m4a4 : MonoBehaviour {
public Animator m4a4animator;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.R)) {
m4a4animator.Play("reload");
}
if (Input.GetMouseButton(0)) {
m4a4animator.Play("shoot");
}
}
}
【问题讨论】:
-
当然可以。
-
好问题。您最好将图片直接添加到您的问题中,因为链接地址可以更改。
-
如果您使用的是 Mecanim,那么我认为您不必添加检查动画是否正在运行。只需在“重新加载 --> 空闲”的转换上勾选“有退出时间”。这应该可以解决问题。
-
另外我建议您使用触发器而不是
animator.play。这些链接应该会有所帮助:- 1)docs.unity3d.com/Manual/AnimationParameters.html 2) youtube.com/watch?v=N73EWquTGSY
标签: c# animation unity3d animator