当我跳过GameObject时遇到了问题。我已经制作了动作largjump和shortjump。但问题是如何制作条件声明。我想区分弱键盘输入和强大的键盘输入。
这是我的代码。
if (Input.GetButtonDown("Jump"))
{
float JumpTime = 0;
JumpTime = JumpTime + Time.deltaTime;
if (Input.GetButtonUp("Jump") && JumpTime < 0.3f)
{
playerCtrl.ActionShortJump();
}
else if (Input.GetButtonUp("Jump") && JumpTime > 0.3f)
{
playerCtrl.ActionJump();
}
}
答案 0 :(得分:3)
GetButtonDown
仅在按下按钮的第一帧时返回true,因此您永远不会跳跃,因为按钮不能在同一帧上向下和向上。按住按钮时需要使用GetButton
来增加跳跃时间,并且在第一次按下按钮时需要GetButtonDown
来重置计时器,同时还要声明JumpTime
以外的按钮整体方法。
float JumpTime;
void Update()
{
if (Input.GetButtonDown("Jump"))
JumpTime = 0;
if (Input.GetButton("Jump"))
JumpTime += Time.deltaTime;
if (Input.GetButtonUp("Jump") && JumpTime > 0 && JumpTime < 0.3f)
playerCtrl.ActionShortJump();
else if (Input.GetButtonUp("Jump") && JumpTime > 0 && JumpTime > 0.3f)
playerCtrl.ActionJump();
else
JumpTime = 0;
}