我正在創建一個對話框系統,用戶可以從中進行選擇,並通過文本字段獲取響應或獲取更多選項。Unity更新方法相同的鍵輸入兩次
起初我有3個選擇。這3個選項屬於一個腳本,另外兩個選項屬於另一個,它們都是同時運行的。每個選項都有一個int索引(第一個選項= 0,第二個選項= 1等)。我已經做到這一點,如果我按下選項1,索引變爲3,去第四個選項。 由於我已將Update中的所有內容都等待用戶的鍵輸入,因此每當用戶按下Enter鍵時,都會從兩個腳本中執行,因此它一次輸入兩個語句。
請告訴我發生的事情基本上當我選擇選項1,即時得到選項4的響應瞬間,因爲當我按下ENTER它從兩個腳本
我怎樣才能使它執行,這樣,當我按下了選擇1進入它請忽略其他聲明。下面的屏幕截圖。
if (Input.GetKey (KeyCode.Return)) {
if (indexConversation == 0) {
Debug.Log("first Option");
// GameObject.Find("Scripts2").SetActive(true);
telResponse.text = "Response 1";
Conv1Controller.Conv1showConversation = true;
indexConversation = 3;
Debug.Log (indexConversation);
} else if (indexConversation == 1) {
Debug.Log("second Option");
telResponse.text = "Response 2";
StartCoroutine(responseTwoFollowedbySix());
}
else if (indexConversation == 2) {
Debug.Log("third Option");
telResponse.text = "Response 3";
StartCoroutine(responseThreeFollowedbyFourFollowedbySeven());
}
showConversation = false;
}
其他腳本(選項4和5)
if (Input.GetKey(KeyCode.Return))
{
if (DialogueController.indexConversation == 3)
{
Debug.Log("Fourth Option");
telResponse.text = "Response 4";
}
if (DialogueController.indexConversation == 4)
{
Debug.Log("Option 5");
telResponse.text = "Response 5";
}
//Conv1showConversation = false;
}
請勿將您的代碼作爲屏幕截圖發佈。在您的問題中複製併發布該代碼。 – Programmer
你有沒有辦法將它們放在同一個腳本中? – CNuts
我把他們在單獨的腳本,因爲他們有相同的方法只是選項4和5不同,也不能有2個OnGUI的權利? –