###前提・実現したいこと
nameを受けとりButtonを生成し、ボタンの名前を変える関数です。
Buttonのprefabをコードで生成しようとしたところinstantiateにnullが渡せれされているようでprefabが作れません。
お願いします。
###発生している問題・エラーメッセージ
どこで止まっているかという記述はありませんが
下記コードのdebug.logでprefabがnullだったためこの部分だと思います。
ArgumentException: The thing you want to instantiate is null.
###該当のソースコード
C# using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Item : MonoBehaviour { public Button[] items = new Button[10]; public Button prefab ; public Transform itemObjTransform; void Start(){ //prefab = Resources.Load ("prefab2/ButtonItem") as Button; } public int SetItem(string name){ int number = 0; Debug.Log (prefab); for (int i = 0; i < 10; i++) { if (items [i] == null) { number = i; break; } number = i; } items [number] = Instantiate (prefab, new Vector3(1,1,1), Quaternion.identity); items [number].transform.SetParent (itemObjTransform); items [number].transform.localScale = Vector3.one; items [number].GetComponent<Text> ().text = name; return number; }
###試したこと
Start()でコメントアウトしている部分でprefabの初期化をしてみましたがprefabはnullのままでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Itemクラスをアタッチしているオブジェクトのinspector
items
size 10
中身はすべてnone
prefab ButtonItem(Button)
itemObjTransform ImageItem(Rect Transform) ← Buttonオブジェクトの親
アンサー意見への補足
Loadにこだわっているのではなく問題はprefabがnullということです。
itemクラスのinspectorではきちんとprefabとButtonがアタッチされています。
念のためということでLoadで初期化しましたが
これでまだnullなのが不思議です
またパスに間違いはありません。
ご協力お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/09 22:50
2017/06/10 01:03
2017/06/10 02:01 編集