LoginSignup
2
0

More than 3 years have passed since last update.

unityのオブジェクトをC#で生成、子要素に移動する方法

Last updated at Posted at 2020-11-17

※Unity実践リファレンスの内容を参考にしています。
<エンジニアのためのUnity実践リファレンス ~ ゲーム開発にすぐに役立つスクリプト入門>
https://www.amazon.co.jp/dp/B00WHEJI8W/ref=cm_sw_em_r_mt_dp_K82SFb5NXTQ27

動的にC#でゲームオブジェクトを生成し、それを特定のゲームオブジェクトの子要素として移動させるためのコードになります

スクリーンショット 2020-11-17 15.25.13.png

    // test.cs

    // Start is called before the first frame update
    void Start()
    {
        //C#で使用する変数名にparentAという名前で作り、
        //ヒエラルキー上のオブジェクト名をParentGO_Aとして生成

        var parentA = new GameObject("ParentGO_A");
        var parentB = new GameObject("ParentGO_B");
        var childA = new GameObject("childrenGO_A");
        var childB = new GameObject("childrenGO_B");
        var childBchildA = new GameObject("childrenBchildrenGO_A");

        //childAをparentAの子要素にトランスフォーム
        //これでchildAのゲームオブジェクトを指定したゲームオブジェクトの子要素に変更
        childA.transform.parent = parentA.transform;
        childB.transform.parent = parentB.transform;

        //特定の要素の子要素にする場合に、2階層下の要素としても1回で変更できる
        //この場合は
        childBchildA.transform.parent = childB.transform;
    }

<実行前>
スクリーンショット 2020-11-17 15.24.52.png

<実行後>
スクリーンショット 2020-11-17 15.25.03.png

ちゃんと階層構造を持ったままゲームオブジェクトが生成されました。

この機能を使って特定の条件下で生成したゲームオブジェクトがあれば、それをFind関数を利用して見つけたのちに、子要素へ移動させるということもできそうです。

2
0
0

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
  3. You can use dark theme
What you can do with signing up
2
0