以下の構文で、別スクリプトでPublic voidメソッドで出た結果を=にしたいのですが、Voidなので、
どうやったらいいかわかりません。アドバイスお願いします。
answer.Push_Button();とQm.SetupAnswer();は、それぞれ別のスクリプトにありまして、Public voidのメソッドです。Namespaceでこちらへ呼び出しました。answer.Push_Button();が、プレイヤーが入力した数字で、Qm.SetupAnswer();には、スクリプタブルオブジェクトで答えが設定されています。
public class Bottun : MonoBehaviour { [SerializeField] private Text suuji_text; public void Push_Button(int number) { suuji_text.text += number; } internal void Push_Button() { throw new NotImplementedException(); } }
public class QuestionManager : MonoBehaviour { [Header("Questions")] [SerializeField] QuestionDataList[] questionDataLists; [Header("Question UI")] [SerializeField] Text questionText = null; [Header("Question UI")] [SerializeField] Text answerText = null; private int questionNumber; void Start() { SetupQuestion(); } private void SetupQuestion() { questionNumber = Random.Range(0, 81); questionText.text = questionDataLists[questionNumber].GetQuestion(); } public void SetupAnswer() { answerText.text = questionDataLists[questionNumber].GetAnswer(); } public void QuestionButton() { SetupQuestion(); } public void AnswerButton() { SetupAnswer(); } public void ClearText() { answerText.text = ""; } } }
public bool IsAnswerCorrect() { Bottun answer = targetObject1.GetComponent<Bottun>(); QuestionManager Qm = targetObject2.GetComponent<QuestionManager>(); answer.Push_Button();←これと Qm.SetupAnswer(); →これが同じ値ならTrueをかえしたいです。 return true; }
なにがvoidなんでしょうか。
質問が意味不明です
answer.Push_Button();とSetupAnswer();は、別々のスクリプトで、Public void Push_Button()とPublic void SetupAnswer();で、ありまして、それを質問のメソッドへ呼び出しました。Push_Button()メソッドは、プレイヤーが入力した数字をテキストに入力するメソッドで、SetupAnswer()メソッドは、アレイにある数字をインデックス番号で呼び出すメソッドです。目的は、Public void Push_Button()で、プレイヤーが入力した数字とPublic void SetupAnswer();で呼び出したアレイにある数字が一致するかどうかを真偽判定したいのですが、両方Voidなので、==では、できないようで、どうやって、数字が一致するかどうか判定したらいいかわかりません。
該当メソッドがvoidを返すのが問題なら、適切なintを返すようにメソッドを書き換えればいいだけでは?
該当ソースコード貼っていただいたほうがよろしいかと思います。
推測で書くなら、「プレイヤーが入力した数字」「アレイにある数字をインデックス番号で呼び出す」ということで比較すべき数値はそれぞれ存在しているはずです。
であるなら、その数値だけを参照して返すメソッドを作ってしまうというのも手かと思います。
public int GetPlayerAnswer() { return プレイヤーの入力した数字; }
public int GetArrayAnswerWithIndex(int index) { return array[index]; }
皆さま、さまざまご提案ありがとうございます!ソースコードを追加しました。
どうぞよろしくお願いいたします。
intメソッドは、それぞれの構文に追加して、二つを比べる為の構文に呼び出すと言う形でよろしいでしょうか?
回答1件
あなたの回答
tips
プレビュー