当我按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>");
}
}
答案 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;
}
}