Prefabから動的にGameObjectを生成するにはInstantiateを使用します。
GameObjectはシーンのルートに作られてしまうので、以下のように作成と初期化を同時に行う関数を用意すると便利です。
使い方
GameObjectはシーンのルートに作られてしまうので、以下のように作成と初期化を同時に行う関数を用意すると便利です。
public static GameObject InstantiateGameObject (GameObject prefab, Transform parent) { // インスタンス生成 GameObject gameObj = Instantiate (prefab) as GameObject; Transform tran = gameObj.transform; // 親設定 if (parent != null) { tran.parent = parent; } // Transform初期化 tran.localPosition = Vector3.zero; tran.localRotation = Quaternion.identity; tran.localScale = Vector3.one; return gameObj; }
使い方
// 生成するプレファブ参照 [SerializeField] private GameObject hogePrefab; void Start () { GameObject go = InstantiateGameObject (hogePrefab, transform); }これで自身の子としてGameObjectが生成されます。