我一直在尝试让玩家能够通过按一次按钮来蹲下,然后再次站立。
我认为这将是相当简单的,我可以只是使用一个bool,但似乎当按钮蹲伏被按下,它给输入太快,立即解除蹲伏。我不确定我是否从错误的地方得到我的bool或什么。
这是我必须切换的蹲下。
//CROUCH
if (crouch.IsPressed() && !isCrouching)
{
Crouch();
}
if(crouch.IsPressed() && isCrouching )
{
Stand();
}
这些是被称为蹲下/站立的方法。我想我的问题与在这些参数中设置bool值有关,但是我想不出来。
void Crouch()
{
isCrouching = true;
transform.localScale = new Vector3(transform.localScale.x, 0.75f, transform.localScale.z);
transform.position = new Vector3(transform.position.x, transform.position.y - 0.15f, transform.position.z);
}
void Stand()
{
transform.localScale = new Vector3(transform.localScale.x, 1f, transform.localScale.z);
isCrouching = false;
}
也要清楚,这是在fixeduupdated。不确定这是否有影响,但当我尝试正常更新时,它是相同的。
两件事:使用WasPressedThisFrame来获得一个只有一帧为真的bool值。你应该把你的代码改成if else语句,这样它们就不能在同一帧中一个接一个都为真。