gpt4 book ai didi

c# - 为什么我的游戏英雄飞起来而不是在Unity中跳跃?

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:45 25 4
gpt4 key购买 nike

我正在尝试学习如何在Unity中开发2D游戏。我想让英雄跳跌。但是,我的游戏英雄是飞行而不是跳跃。当我按下相关键时,它会跳跃而不会掉落。

我可能犯了一个逻辑错误。我定义了一个名为checkJump的布尔值,但不确定是否有效。按下键盘上的相关X键后,就会看到Check Jump选项已启用。但是,再也不会禁用它。因此,游戏英雄永远不会摔倒。

以下是相关的变量:

[SerializeField]
private bool checkJump;
[SerializeField]
private float jumpForce;


这是在 Jump()中调用的 Update()函数:

private void Jump () {
if (Input.GetKeyDown (KeyCode.X))
{
checkJump = true;
JoePlayer.velocity = new Vector2 (JoePlayer.velocity.x, jumpForce);
}
checkJump = false; //If I apply this, then the boolean never turns back to the enabled status.
}


如果将 checkJump = false布尔值写到 if块之外,则永远不会启用该布尔值,但是游戏角色会继续飞行。因此,if块中的布尔值永远不会起作用。

Click here for the display result

如何实现使游戏英雄跳跃和摔倒?当玩家按下 X键时,英雄应该自动跳跃和下落。

最佳答案

简而言之检查跳转

checkJump正在执行将要执行的操作。它会检查您是否在跳跃。无论是否跳跃,它都不会改变,因为您没有条件检查。如果您希望这种情况发生,则必须执行以下操作。

让那个家伙跳

 JoePlayer.AddForce(Vector3.up * jumpSpeed);


将您的速度代码更改为这样。
确实不需要您的 checkJump布尔值。如果要保留它,请随时将其重新添加。

关于c# - 为什么我的游戏英雄飞起来而不是在Unity中跳跃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50770404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com