前提・実現したいこと
プレハブ化したオブジェクトをスクリプトからアクセスしてオブジェクトとして生成させたい。
2つの関数のうち、まったく同じコードにかかわらず、片方はうまく生成できるのに対し片方はエラーメッセージでて動かない。
発生している問題・エラーメッセージ
ArgumentException: The Object you want to instantiate is null.
該当のソースコード
該当関数のみ書きます
C#
1 void Start() 2 { 3 //プレハブ化したオブジェクトにアクセス 4 message = (GameObject)Resources.Load("message"); 5 6 inputtext = messageinput.GetComponentInChildren<Text>(); 7 messageparent = inputtext.transform.parent.gameObject; 8 form = messageparent.GetComponent<InputField>(); 9 10 nowtimetext = nowtime.GetComponentInChildren<Text>(); 11 12 } 13 14 //↓とは引数があるかどうか程度の違い 15 //こちらがエラー出る関数 16 void loadmessage(int ID, string Message, string Time) 17 { 18 19 GameObject obj = Instantiate(message); 20 obj.name = "message" + ID; 21 obj.transform.parent = list.transform; 22 23 GameObject messagetext = obj.transform.Find("messagetext").gameObject; 24 Text text1 = messagetext.GetComponentInChildren<Text>(); 25 text1.text = Message; 26 27 GameObject time = obj.transform.Find("time").gameObject; 28 Text text2 = time.GetComponentInChildren<Text>(); 29 text2.text = Time; 30 } 31 32 //動く関数 33 public void Onclick() 34 { 35 36 objcun = list.transform.childCount; 37 38 39 GameObject obj = Instantiate(message); 40 obj.name = "message" + cun; 41 obj.transform.parent = list.transform; 42 43 GameObject messagetext = obj.transform.Find("messagetext").gameObject; 44 Text text1 = messagetext.GetComponentInChildren<Text>(); 45 text1.text = inputtext.text; 46 47 GameObject time = obj.transform.Find("time").gameObject; 48 Text text2 = time.GetComponentInChildren<Text>(); 49 text2.text = nowtimetext.text; 50 51 form.text = ""; 52 } 53
試したこと
プレハブ化したオブジェクトがリソースファイルにあるのを確認しました。原因わからないです。