万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    動的にColliderを子としてつける Unity

    http://forum.unity3d.com/threads/111494-How-to-dynamically-create-EmptyObject-as-child-via-Script

    void 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));