私は、ユーザーが選択するオプションを持つダイアログシステムを作成しています。テキストフィールドを使用して応答を取得するか、選択肢が増えます。ユニティメソッドを同じキー入力で2回更新する
最初は3つのオプションがあります。これらの3つのオプションはスクリプトに属し、別の2つのオプションは両方とも同時に動作する別の2つのオプションに属します。各オプションには、intインデックス(最初のオプション= 0、2番目のオプション= 1など)があります。私はオプション1を押すとインデックスが3になり、4番目のオプションに行くようにしました。 ユーザーがキー入力を待つためにUpdateにすべてを入れましたので、ユーザーがEnterを押すたびに両方のスクリプトから実行されるので、両方のステートメントを一度に入力できます。
私はオプション1を選択したときに私はそれをEnterキーを押したときに、私は押したときにオプション1に入力するように
どのように私はそれを作ることができ、両方のスクリプトから実行されますので、イムは即座にオプション4の応答を取得し、基本的に起こっていただきましたそれは他の声明を無視してください。以下のスクリーンショットあなたの最初のスクリプトを考慮
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が正しいのですか? –