C# 利用键盘输入的力量进行短跑和跳远
当我跳过游戏对象时遇到了问题。我已经做了跳远和跳远动作。但问题是我怎样才能做出条件语句。我想区分弱键盘输入和强键盘输入 这是我的密码C# 利用键盘输入的力量进行短跑和跳远,c#,unity3d,C#,Unity3d,当我跳过游戏对象时遇到了问题。我已经做了跳远和跳远动作。但问题是我怎样才能做出条件语句。我想区分弱键盘输入和强键盘输入 这是我的密码 if (Input.GetButtonDown("Jump")) { float JumpTime = 0; JumpTime = JumpTime + Time.deltaTime; if (Input.GetButtonUp("Jump") && JumpTime < 0.3f) { pla
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();
}
}
GetButtonDown仅在按下按钮的第一帧时返回true,因此您永远不会跳转,因为按钮不能在同一帧上上下移动。当按下按钮时,需要使用GetButton来增加跳转时间,当第一次按下按钮时,需要使用GetButtonDown来重置计时器,同时还需要在整个方法之外声明跳转时间
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;
}
GetButtonDown仅在按下按钮的第一帧时返回true,因此您永远不会跳转,因为按钮不能在同一帧上上下移动。当按下按钮时,需要使用GetButton来增加跳转时间,当第一次按下按钮时,需要使用GetButtonDown来重置计时器,同时还需要在整个方法之外声明跳转时间
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;
}