如何在 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");
            } 

回答

您应该GetKeyDownUpdate函数中调用 ,因为每个帧的状态都会重置。我建议使用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");
}
}
}

以上是如何在 unity c# 中切换?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>