2013年11月07日

[Unity] 実行時エラー(The thing you want to instantiate is null)の対処

Editorでプレビューしたときはちゃんと動いたのに、いざiOSの実機で動かそうとしたときに
下記の実行時エラーが出たときの対処法。

------------------------------------------
ArgumentException: The thing you want to instantiate is null.
at UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) [0x00000] in :0
at UnityEngine.Object.Instantiate (UnityEngine.Object original) [0x00000] in :0
at [自作クラス].Start () [0x00000] in :0
------------------------------------------

■原因 ※C# で記述しています
・Instantiate() を呼ぶときに、引数にプレファブを渡す
・このプレファブが「public GameObject xxx;」と宣言されていた

■対処
・Instantiate() に渡すプレファブについて、Resources/ 以下にプレファブを置いて、そこを参照するように変更した
■プログラム ※必要部分だけ抜粋
【誤】
public GameObject [プレファブ名];
void Start() {
GameObject obj = Instantiate("[プレファブ名]") as GameObject;
}
【正】
void Start() {
GameObject obj = Instantiate(Resources.Load("[プレファブ名]")) as GameObject;
}

でも、どうしてエディタ上でOKで、実機ではダメなんだろう。。。

■参考
http://hissi.org/read.php/gamedev/20120216/WEVXK2RUYTI.html
posted by be-style at 00:48| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。