前提・実現したいこと
Unity2Dで単語カードのようなものを作っています。
仕組みとしてはランダムで単語の画像を表示し、入力フォームでユーザが入力したものと答えが一致すれば正解の表示、一致しなければ失敗を表示するといったものを作りたいと思っています。
画像をランダムで表示する部分はUnityのTrain機能を使用し、空のオブジェクトにランダムでPrefabを呼び出すといった方法をとりました。
参考にしたページ→https://qiita.com/maki0321/items/cb01fb4ee8cf0a6bbafe
発生している問題・エラーメッセージ
現在困っているのは、このランダムで画像を表示したときの乱数を代入した変数を入力フォームのスクリプトから参照して、入力された単語がその画像に対する答えと一致するか比較するといった処理を行おうとしたところ、下記のようなエラーメッセージが表示されてしまい、変数の参照ができないことです。
Asset\Script\KanjiScript(18,5): error CS0106: The modifier 'public' is not valid for this item
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class KanjiScript : MonoBehaviour 6{ 7 8 //GameObjectの配列を宣言 9 public GameObject[] Train; 10 11 void Start() 12 { 13 //指定したオブジェクトの配列からランダムに一つ選んで生成 14 int kanjinumber = Random.Range (0, Train.Length); 15 Instantiate(Train[kanjinumber],transform.position,transform.rotation); 16 17 //取得用のkanjinumber変数を作成 18 public int GetKanjiNumber(){ 19 return kanjinumber; 20 } 21 22 //ランダムに選ばれたオブジェクト番号kanjinumberを表示 23 Debug.Log(kanjinumber); 24 25 } 26 27 void Update() 28 { 29 30 } 31}
入力フォームのソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class ImiScript: MonoBehaviour 7{ 8 //InputFieldを格納するための変数 9 InputField inputField; 10 11 // Start is called before the first frame update 12 void Start() 13 { 14 //InputFieldコンポーネントを取得 15 inputField = GameObject.Find("InputField").GetComponent<InputField>(); 16 } 17 18 //入力された名前情報を読み取ってコンソールに出力する関数 19 public void GetInputName() 20 { 21 //InputFieldからテキスト情報を取得する 22 string mean = inputField.text; 23 Debug.Log(mean); 24 25 KanjiScriptからkanjinumberを参照 26 int kNumber; 27 kNumber = KanjiScript.GetKanjiNumber(); 28 Debug.Log(kNumber); 29 30 //入力フォームのテキストを空にする 31 inputField.text = ""; 32 33 34 } 35 36 37} 38
試したこと
変数がグローバル化していないがために呼び出すことができないんだろうということで、下記のサイトの変数をpublicで宣言する、プロパティーを使う、上記のコードのように取得用の関数を作成するなど一通り試しましたがうまくいきませんでした。
https://qiita.com/Teach/items/8d1cdb90a3b533707c9a
補足情報(FW/ツールのバージョンなど)
Unity Ver: 2019.3.0f
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/02 14:03
2020/02/02 15:03
2020/02/03 03:58