我正在尝试使用基于键输入的脚本来更改角色动画,但Unity似乎只播放默认的“常驻空闲”动画并偶尔切换到“蹲伏的空闲”,是否有不同的方法来处理动画或者我只是做错了?这是我目前的脚本
IntOps
答案 0 :(得分:0)
尝试替换
if (Input.GetButton ("Fire3")) {
if (crouched == false) {
crouched = true;
} else {
crouched = false;
}
}
与
if (Input.GetButton ("Fire3")) {
crouched = true;
} else {
crouched = false;
}
现在,当您按住“Fire3”按钮时,您的角色应该蹲伏,当您释放它时,他/她应该再次站立
还有一个建议:将其他代码放在函数(if (crouched == true) ... animator.Play (sc + "idle");
后面这段代码(Input.GetButton
检查)。这样,你的角色应该立即开始蹲伏按下按钮的同一帧<否则,他/她将在
Input.GetButton
将返回true。每次调用Update
(大约1/60秒),您的代码都会检查您是否按下了,并切换crouched
。当您点击/点按该按钮时,您可能会按下几帧,因此crouched
会从true
切换到false
,来回几次。在某些情况下(按下奇数帧时),crouched
将被切换,但在其他情况下(按下偶数帧时)crouched
将保持不变在你点击按钮之前,阻止你的角色蹲伏,或者在他之前蹲伏时站立。
来源:来自官方API:Input.GetButton
答案 1 :(得分:0)
我强烈建议您在获得输入时使用动画状态并从一个传输到另一个。在Unity 2D animation running partially
查看我的答案答案 2 :(得分:0)
是的,您可以像这样进行切换操作
void Update()
{
if(Input.MouseButtonDown(2))
{
crouched = true;
}
if(Input.MouseButtonUp(2))
{
crouched = false;
}
}
答案 3 :(得分:0)
您可以尝试以下代码:
crouched = Input.GetButtonDown("Fire3") ? true : false;