前提・実現したいこと
プレハブ化したinputFieldオブジェクトをボタンをクリックした時に生成されるようにしたい。
発生している問題・エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object DateInput.Start () (at Assets/Scripts/DateInput.cs:18)
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using System.IO; 4using UnityEngine; 5using UnityEngine.SceneManagement; 6using UnityEngine.UI; 7 8public class DateInput : MonoBehaviour 9{ 10 public InputField inputField; 11 string filePath; 12 //入力された日付の変数を保持する 13 public static string dateInput; 14 15 16 void Start() 17 { 18 inputField = GameObject.Find("DateInput").GetComponent<InputField>(); 19 } 20 21 void Update() 22 { 23 24 } 25 26 public static string GetDate() 27 { 28 return dateInput; 29 } 30 31 public void EndMethod() 32 { 33 //InputFieldからテキスト情報を取得する 34 dateInput = inputField.text; 35 Debug.Log($"{dateInput} 確認1"); 36 37 //入力した日付のデータがあるか参照 38 filePath = Application.temporaryCachePath + $"/{dateInput}_savedata.json"; 39 40 if (File.Exists(filePath)) 41 { 42 FadeManager.FadeOut(1); 43 } 44 else 45 { 46 Debug.Log("その日のデータは存在しません"); 47 } 48 Destroy(gameObject); 49 } 50 51} 52
試したこと
よく見かけるNullReferenceエラーで何かの値が無いということはわかるので
inputFieldにコンポーネントが追加されているかや、
ボタンのInspecterビューでinputFieldプレハブが入っているかなど確認を行いました。
Startメソッドでエラーが出ていますがオブジェクトが生成されてから実行するはずなので"DateInput"が
無いということはないと考えているのですがここがエラー原因なのでしょうか?
補足情報(FW/ツールのバージョンなど)
最初からエディター上に設置しておくとエラーは出ませんが、ボタンをクリックしてプレハブを生成しようとすると
上記のエラーが発生します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/21 06:53 編集
2020/07/21 06:54
2020/07/21 06:58
2020/07/21 07:01
2020/07/21 07:05