gpt4 book ai didi

C# 在循环中切换 boolean 值/Unity 在 Update() 中切换 boolean 值

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:27 26 4
gpt4 key购买 nike

标题可能看起来没有定论,但它是一回事,只是在谈论 Unity 引擎时解释不同,以防任何 Unity vert 看到我的帖子。

在 Unity 引擎中,有一些方法在一个类中执行特定的任务,其中之一是 Update() 方法,它对每一帧进行循环(因此标题中的循环表达式).

我的想法是,我将在这个循环中有一个表达式,等待用户点击一个键,这将依次切换一个 boolean 变量。我尝试过以多种不同的方式实现这一点,但我现在使用的方式似乎是最有希望的。

if (Input.GetKeyDown(KeyCode.Delete))
{
if (this.modGodspeed)
{
this.speedMult = 1f;
this.godSpeedToggled = "OFF";
this.modGodspeed = false;
}
if (!this.modGodspeed)
{
this.speedMult = 5f;
this.godSpeedToggled = "ON";
this.modGodspeed = true;
}
}

在启动过程中, boolean 值被初始化为 false,所以它默认显示 OFF,当我点击删除键时,第一部分开始工作,它显示 ON 并且 speedMult 变量设置为 5。问题是它不会再次关闭。再次单击“删除”不会执行任何操作。

代码说明:

Input.GetKeyDown(Keycode.Delete) = Unity 库的一部分,读取按键输入。

modGodSpeed = 我说的 boolean 值。

speedMult = 要切换的速度倍增器。

godSpeedToggled = 字符串变量,向用户显示 Godspeed 是否已切换。

最佳答案

您的代码完全按照您编写的方式执行。

这是正在发生的事情:

1if (this.modGodspeed) 将执行并将 modGodspeed 设置为 false

2if (!this.modGodspeed) 将在同一帧执行并设置 modGodspeedtrue

3。当您再次按下删除键 (KeyCode.Delete) 时,这将重复。


如果第一个 if 语句执行,则

#2 不应执行。您需要使 if 语句只检查一次,以便如果 modGodspeed 变量为 true,则另一个 if 它下面的语句不会被再次检查。这就是为什么有 ifelse ifelse 语句的原因。

在第二个 if 语句中使用 else if:

if (this.modGodspeed)
{
....
}
else if (!this.modGodspeed)
{
...
}

或者简单地使用 else 语句,因为 modGodspeed 变量是一个 boolean 变量,它可以是 truefalse.

if (this.modGodspeed)
{
....
}
else
{
....
}

关于C# 在循环中切换 boolean 值/Unity 在 Update() 中切换 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47602053/

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