前提・実現したいこと
Unityでアプリ開発をしています。InputFieldとプレハブを使って入力フォームをつくり、そこに入力されたデータをstatic変数に保存しようとしているのですが、インスタンスとして作成されたInputFieldのテキストを抽出する過程がどうもうまくいきません。
発生している問題・エラーメッセージ
関数を実行するとNull referenceのエラーが出てしまいます。
Object reference not set to an instance of an object TestForInstance.MakeNewInputfield () (at Assets/Test/TestForInstance.cs:31)
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class TestForInstance : MonoBehaviour 7{ 8 9 public InputField inputFieldPrefab; 10 public InputField inputFieldTest; 11 public Text textOfInputFieldTest; 12 public GameObject panel; 13 public static int n = 0; 14 public static string strOfPlayerNameForTest; 15 16 17 public void MakeNewInputfield(){ 18 19 InputField[] inputFieldTest = new InputField[5]; 20 Text[] textOfInputFieldTest = new Text[5]; 21 string[] strOfPlayerNameForTest = new string[5]; 22 23 for (int i = 0; i < inputFieldTest.Length; i++){ 24 25 if(i < n) continue; 26 27 inputFieldTest[i] = Instantiate(inputFieldPrefab, new Vector3(0, 370 - (60 * (i + 1)), 0), Quaternion.identity); 28 inputFieldTest[i].transform.SetParent(this.panel.transform,false);//クローンの親を指定 29 inputFieldTest[i] = inputFieldTest[i].GetComponent<InputField>(); 30 textOfInputFieldTest[i] = inputFieldTest[i].GetComponent<Text>();//ここから下でエラーが起きる 31 textOfInputFieldTest[i] = textOfInputFieldTest[i].GetComponent<Text>(); 32 textOfInputFieldTest[i].text = inputFieldTest[i].text; 33 strOfPlayerNameForTest[i] = textOfInputFieldTest[i].text;//ここまで 34 35 n += 1; 36 37 if (i < n) break; 38 } 39 } 40 41} 42
試したこと
.textやGetComponent<Text>などの違いが分かっていないためだと思い、そこら辺を色々変えてみましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。