按住按钮,允许GUI保持在屏幕上

时间:2015-09-03 19:07:39

标签: c# unity3d

当我按Tab键时,如何让GUI Labels和Box保持在屏幕上 - 此时此代码允许它出现但是当你释放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>");
    }
}

1 个答案:

答案 0 :(得分:0)

释放标签按钮的那一刻,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>");
    }
}

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

编辑:如果您想通过Tab键切换GUI的可见性,可以使用Input.GetKeyDown(KeyCode.Tab)(仅触发按Tab键的第一帧),然后更改您的每次按Tab键时Update()否定showGui

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