ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

prefabを動的に配置したい

久しぶりにいじると、色々忘れてる。汗

手順1

アセットのprefabは、Resourcesフォルダー(無ければ作成する)に入れておく。

手順2

以下のコードを書く。

var prefab = Resources.Load<GameObject>("prefabへのパス");  //※1
instance = Instantiate(prefab);
instance.transform.SetParent(ParentWindow.transform);  //※2
instance.transform.localScale = Vector3.one;
instance.transform.localPosition = Vector3.zero;
instance.name = instance.name.Substring(0, instance.name.Length - 7);  //※3

※1
prefabへのパスは、アセットのResourcesフォルダー以降のパスになる。
例えば ("フォルダー名/prefab名") といった感じ。

※2
ParentWindowはprefabを配置したい親のゲームオブジェクトのこと。
別途、Findで取得しておくこと。

※3
動的に配置すると、配置されたインスタンス名の末尾に自動的に(Clone)が追加されるので、それを削除している。

以上