【发布时间】:2016-10-18 19:37:42
【问题描述】:
我在 Update 函数中有一个 if 语句,只有在满足其他三个条件时才会调用它。问题在于,现在该函数将布尔值设置为 true,这会导致动画在 unity Mechanim 内部播放。此布尔值仅在我按住按钮时为真,但我希望它播放整个动画或在一定时间内保持此布尔值为真,谢谢,这是我的代码。
//Running and jumping animation
if (Input.GetKey (KeyCode.W) && (Input.GetKey (KeyCode.Space)) && otherAnimation == false) {
anim.SetBool ("isRunningAndJumping", true);
}
else {
//anim.SetBool ("isRunningAndJumping", false);
}
【问题讨论】:
-
如果您获得 Input.GetKeyDown 而不是 Inpt.GetKey ,您是否检查过行为是否有所不同?
-
是的,当我这样做时,动画在我按下键时开始播放,但在那之后立即停止播放。我希望它在发生这种情况时播放整个动画。
-
前面的评论说明了未提交底线会发生什么。将该行保留为注释的结果将继续播放动画,因为布尔值将保持真实。
-
如果你知道动画有多长,可以试试
yield return new WaitForSeconds("animation time without quotes") -
如何在我的代码中实现这一点?我是否必须创建另一个 IENumerator 函数或其他东西。你能给我举个例子吗?