Unity

【Unity】スクリプトからPrefabのインスタンスを作る方法

More than 1 year has passed since last update.

スクリプトにアタッチせずに、スクリプトから直接Prefabを指定してインスタンスを生成する方法の紹介をします。

001.png
まずProjectビューに「Resources」フォルダを作って、そのフォルダの下にプレハブを配置します。図ではさらに「Prefabs」フォルダを作ってその下に配置していますが、これは無くても問題ありません。

これにより、Resources.Load()を使用することで、スクリプトからプレハブを取得することができます。

// プレハブを取得
GameObject prefab = (GameObject)Resources.Load ("Prefabs/Shot");
// プレハブからインスタンスを生成
Instantiate (prefab, position, Quaternion.identity);

今回は、Prefabsというフォルダの下に配置したので、指定する文字列は"Prefabs/Shot"となります。もし"Resources"ファルダの直下に配置するのであれば"Shot"を指定することとなります。

これにより、アタッチが不要となるので、static関数からプレハブをインスタンス化することが可能となります。