私は非常に最初のゲームを統一しています。この試合では、私のプレーヤーはいくつかの疑問符に触れるボールです。疑問符が表示されたら、質問とその答えを表示する必要があります。ここまではすべてのことが大丈夫です。今私は質問に応じてaまたはbを押す必要があります。答えが正しい場合は、ポイントを追加します。しかし、ここに問題があります。 Unityは私がキーを押すのを待つことはありません。 Unityがコードを通過してからボタンを押すと、ゲームがクラッシュします。ユニティ - iキーを押すまでユニティを待つ方法
-1
A
答えて
1
さて、コメントセクションから離れて、問題の私の現在の理解で即興をしようとしましょう。
まず、次の点を考慮する必要があります。
void OnTriggerEnter(Collider collider)
トリガONLY一度、他のコライダーが入ったとき。ソリューション? OnTriggerStayを使用します。
void OnTriggerStay(Collider collider)
これは、オブジェクトが衝突しているときに入力を常にチェックします。
次に考慮する必要があるのは、テキストのリセットです。私が理解している限り、あなたがもう衝突していないときにそれを削除する必要があるので、追加の方法があります。 OnTriggerExitは、もはや衝突していないときに追加のコードを実行します。
void OnTriggerExit(Collider collider)
{
if (collider.gameObject.CompareTag("QuestionCube1"))
{
Question.text = "";
Answer.text="";
}
}
void OnTriggerEnter(Collider collider)
{
if (collider.gameObject.CompareTag("QuestionCube1"))
{
Question.text = "Which Number is bigger?";
Answer.text = "A.5 B.10";
if(Input.GetKeyDown(KeyCode.A))
{
gameController.minusQuestionScore();
}
else if(Input.GeyKeyDown(KeyCode.B))
{
gameController.addQuestionScore();
}
}
}
+0
ありがとうございます。 –
1
あなたはそれがトリガーされた後に入力を待つコルーチンを使用することができますので、全体的に。
void OnTriggerEnter(Collider collider)
{
if (collider.gameObject.CompareTag("QuestionCube1"))
{
Question.text = "Which Number is bigger?";
Answer.text = "A.5 B.10";
StartCoroutine(WaitForAnswer());
}
}
IEnumerator WaitForAnswer()
{
for (;;)
{
if (Input.GetKeyDown(KeyCode.A))
{
gameController.minusQuestionScore();
break;
}
else if (Input.GetKeyDown(KeyCode.B))
{
gameController.addQuestionScore();
break;
}
yield return null;
}
Question.text = "";
Answer.text = "";
yield return null;
}
関連する問題
- 1. ユニティで別のアニメーションを待つアニメーションを作成する方法
- 2. はユニティではユニティ
- 3. ユニティ - アニメーションが終了するまで待つ
- 4. キーが押されてもスプライトが変化しない - ユニティ2D
- 5. ユニティでクリップを作成する方法
- 6. ユニティでダイナミックテーブルを作成する方法
- 7. ユニティでアニメーターウィンドウをパンする方法は?
- 8. ユニティでログインウィンドウを作成する方法
- 9. Rでキーを押すのを待つ方法は?
- 10. perlスクリプトでキーを押すのを待つ方法は?
- 11. Clojureでキーを押すのを待つ方法
- 12. ユニティでスライダーを作る方法
- 13. ユニティ/ XCode:ユニティ/ ObjCRuntime.hファイルが見つかりません
- 14. ユニティ
- 15. ユニティ
- 16. ユニティ
- 17. ユニティでイベントハンドラメソッドを呼び出す方法を教える方法
- 18. ユニティ(NGUI)スクロールビューでのオブジェクトのスケール方法
- 19. I Enterキーを押すと
- 20. ユニティとWCFライブラリ:wcfライブラリでユニティをロードする場所は?
- 21. カメラをユニティ
- 22. ユニティ - 値
- 23. ユニティ:コンポーネント
- 24. ASP.NET - ユニティ -
- 25. ユニティloadConfiguration
- 26. ユニティ。 GearVRの1つのシーン
- 27. スプライトをユニティでスケーリングする
- 28. ユニティへのテキストの取得方法
- 29. ユニティのキャンバスグループの不飽和化方法
- 30. ユニティでのシリアル化
問題の最小限のコードを投稿してください。問題をより簡単に理解して識別できるようにしてください。 – Vect0rZ
コードを投稿するときに元の投稿を編集することができます。コメントセクションには読み込みができません。それ以外では、入力後にQuestion.textとAnswer.textをリセットする理由は何ですか? (そしてあなたの元の質問に答えるために、入力を「待つ」ことはまったく良い習慣ではありません)。まず、テキストをリセットする必要はないかもしれませんし、そうする特別な理由があるかもしれません。 – Vect0rZ
それらをリセットする理由は、動いている間に私の顔にテキストを持たないことです。もしアイデアがうまくいかないのであれば、私が望むものを私に与えることができますか?キーボードから質問に答える。私は土曜日までこれを終わらせなければならない。 –