search
LoginSignup
27

More than 5 years have passed since last update.

posted at

Unity2d Scriptで生成したGameObjectを子として登録する。

とある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の動的生成については、こちらの記事に詳細を載せています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
27