我爲我製作的簡單遊戲創建了暫停菜單。在該暫停菜單中有一個字段可輸入您的用戶名。我試圖在用戶被允許關閉暫停菜單之前檢查是否輸入了用戶名。但是,當焦點從輸入字段改變時,只有input.text
和input.TextComponent.text
值才更改爲鍵入的用戶名。從輸入字段獲取文本僅在焦點更改後才起作用
我的代碼如下:
public InputField input;
if ((string.IsNullOrEmpty (input.text)) || (input.text == "Enter Username")){
input.textComponent.color = Color.red;
input.text = "Enter Username";
} else {
input.textComponent.color = Color.black;
//hide pause menu and resume game
canvas.gameObject.SetActive (false);
Time.timeScale = 1;
}
此代碼僅當用戶單擊輸入字段盒子拿走試圖關閉暫停菜單之前的作品。如何輸入輸入的文本?
我已經嘗試在if語句之前添加GUI.focusControl("")
和GUI.focusControl(null)
,但這也不起作用。
編輯:
我已經證實,if
語句的第二個參數是工作。如果輸入的文本是「輸入用戶名」,菜單不會關閉,所以我知道我正確地檢查文本變量。我只是不明白爲什麼if語句返回true,如果你輸入其他任何東西?我必須缺少一些東西