- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!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}}