!!!GameObjectの階層位置を変更 シーンに新たに複製して配置したGameObject(スクリプトからの生成は「[[形状の複製(Prefab)|unity_prefab]]」参照)は、シーン階層ではどこに配置されるかは不明。 明示的に生成したGameObjectのを指定の階層に置きたい場合もあります。 以下のような階層が存在すると仮定。 root object1 object1_1 object1_2 object1_2の下に、object_1_2を複製したobject_1_3を作成してobject1の子として配置する例です。 // object1_2を複製してobject1_3とする. GameObject obj1_2 = GameObject.Find("/root/object1/object1_2") as GameObject; GameObject obj1_3 = GameObject.Instantiate(obj1_2) as GameObject obj1_3.name = "object1_3"; // 階層位置を指定. GameObject object1 = GameObject.Find("/root/object1") as GameObject; obj1_3.transform.parent = object1.transform; obj1_3.transform.localScale = new Vector3(1, 1, 1); // なぜかスケールが不正になる場合があるので(1, 1, 1)を入れて補正. 「対象のGameObject.transform.parent」に対して、親にするGameObjectのtransformを入れます。 この後、なぜかスケール値が大きな値になってしまうことがあったため、transform.localScaleに(1, 1, 1)を入れるようにしてます。 ---- {{lastmodified}}