如何在 unity c# 中切换?
我正在尝试使用切换按钮切换标签以进行更改,但我无法弄清楚。对于代码 1,它根本不会更改为值,而对于代码 2,它会在一瞬间发生变化。我不知道如何让它切换并保持切换。谁能帮我解决这个问题
代码 1
bool isActive = false;
public void OnGUI() {
if (Input.GetKeyDown("insert"))
{
isActive = !isActive;
}
if (isActive == true)
{
GUI.Label(new Rect(0, 0, 500, 500), "on");
}
else
{
GUI.Label(new Rect(0, 0, 500, 500), "off");
}
按下插入,它不会改变
代码 2
public void OnGUI() {
bool isActive = false;
if (Input.GetKeyDown("insert"))
{
isActive = !isActive;
}
if (isActive == true)
{
GUI.Label(new Rect(0, 0, 500, 500), "on");
}
else
{
GUI.Label(new Rect(0, 0, 500, 500), "off");
}
回答
您应该GetKeyDown从Update函数中调用 ,因为每个帧的状态都会重置。我建议使用KeyCodeas well 而不是字符串键名。
样本
public class ExampleClass : MonoBehaviour
{
bool isActive = false;
void Update()
{
if (Input.GetKeyDown(KeyCode.Insert))
{
isActive = !isActive;
}
}
void OnGUI()
{
if (isActive == true)
{
GUI.Label(new Rect(0, 0, 500, 500), "on");
}
else
{
GUI.Label(new Rect(0, 0, 500, 500), "off");
}
}
}