動的にColliderを子としてつける Unity
http://forum.unity3d.com/threads/111494-How-to-dynamically-create-EmptyObject-as-child-via-Scriptvoid Start () { GameObject child = new GameObject(); // 空のオブジェクト child.AddComponent("BoxCollider"); // BoxのColliderを貼り付ける child.transform.parent = transform; //新しく作成した空のオブジェクトに自分をはっつける }
5分で回答がきた。素晴らしい。
- こうではなく。
親 GameObjectの子になると部分 ← 子 GameObject
- こうする!
子 GameObjectの親となる部分 ← 親 GameObject
transformにchildというのがない。
this.gameObject.transform.parentなんてのがないのがミソ。
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
一応このようにプリミティブは作れるが、空GameObject作成のPrimitiveTypeは存在しなかった。そもそもプリミティブの位置づけではなさげ。
リファレンスに例がなくて気が付かないが
http://unity3d.com/support/documentation/ScriptReference/GameObject.GameObject.html
GameObjectに コンポーネントを引数にアタッチできるコンストラクタ が用意されてるので更に短くできる!
GameObject child = new GameObject("Empty", typeof(BoxCollider));