允许GUI停留在屏幕上按下按钮

本文关键字:按钮 屏幕 GUI 停留在 允许 | 更新日期: 2023-09-27 18:11:16

当我按Tab键时,我如何使GUI标签和框留在屏幕上-这段代码目前允许它出现,但当你释放Tab键时,它消失了。谢谢你

public void OnGUI()
{
    if (Input.GetKey(KeyCode.Tab)) 
    {
        GUI.contentColor = Color.white;
        GUI.Box(new Rect(1000, 5, 400, 400), "What You Should Know");
        GUI.Label(new Rect(1135, 5, 400, 400), "___________________");
        GUI.Label(new Rect(1145, 23, 400, 400), "<color=cyan><size=20>The </size></color>" + "<color=cyan><size=20>" + this.cdrw + "</size></color>");
    }
}

允许GUI停留在屏幕上按下按钮

Tab键释放后,Input.GetKey(KeyCode.Tab)返回false。如果您希望总是在第一次按Tab后显示GUI元素,您可以在Input.GetKey(KeyCode.Tab)true时修改布尔标志,并使用该标志作为显示/隐藏GUI的条件。例如:

bool showGui = false;
public void Update(){
    if (Input.GetKey(KeyCode.Tab)) 
    {
        showGui = true;
    }
}
public void OnGUI()
{
    if (showGui) 
    {
        GUI.contentColor = Color.white;
        GUI.Box(new Rect(1000, 5, 400, 400), "What You Should Know");
        GUI.Label(new Rect(1135, 5, 400, 400), "___________________");
        GUI.Label(new Rect(1145, 23, 400, 400), "<color=cyan><size=20>The </size></color>" + "<color=cyan><size=20>" + this.cdrw + "</size></color>");
    }
}

希望这对你有帮助!如果你有任何问题,请告诉我。

EDIT:如果你想用Tab键切换GUI的可见性,你可以使用Input.GetKeyDown(KeyCode.Tab)(它只触发Tab键被按下的第一帧),并且每次Tab键被按下时改变你的Update()来否定showGui:

public void Update(){
    if (Input.GetKeyDown(KeyCode.Tab)) 
    {
        showGui = !showGui;
    }
}