はじめに
ゆう@あんのうんです。
とあるGameObjectがあり、動的にそのGameObjectに新しいGameObjectを子として登録する方法です。
やりかた
子としてGameObjectを登録すると、親の座標移動に従って相対的に座標変更できるので、パーティクルとかでGameObjectに一定時間エフェクトを表示する時など便利です。
例では、動的に生成したPrefabを子として登録します。
// プレハブを取得 GameObject prefab = (GameObject)Resources.Load("Prefabs/Effects/Prefab名"); Vector2 pos = new Vector2(gameObject.transform.position.x, gameObject.transform.position.y); // プレハブからインスタンスを生成 GameObject obj = (GameObject)Instantiate(prefab, transform.position, Quaternion.identity); // 作成したオブジェクトを子として登録 obj.transform.parent = transform;
上記Sampleの様に、生成したオブジェクトの、transform.parentに親にしたいオブジェクトのtransformを登録する事で、親子関係にすることが出来ます。
上記Sampleでやっている、Prefabの動的生成については、こちらの記事に詳細を載せています。