FC2ブログ
    05 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】Unityで同じオブジェクトの構成を触る時、いちいちアサインしないで親だけアサインしてとってくればいいんじゃない? 

    こんにちは。坂内っす。
    今日の17時からFF16の体験版ですね。
    まぁPS5もってないんで、関係ないんですけどね。


    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:




    さて、UnityでこんなUIを作った時に、便利なやり方。
    (なんか過去に同じような記事かいた記憶あるけど、まぁいいや。)



    こんな感じで、同じオブジェクトの繰り返しで、各テキストにコードで中身を入れる時。

    こうやってませんか?




    これ、オブジェクト数増えると大変なことになってしまいますよね・・・・

    この場合Tierのセットの中身が同じなら、こうすれば簡単に繰り返しができます。

    [Blog20230612.cs]

    using UnityEngine;

    public class Blog20230612 : MonoBehaviour
    {
    [SerializeField] GameObject[] objTier;

    void Start()
    {
    for (int i = 0; i < objTier.Length; i++) {
    GameObject objTierItem = objTier[i];
    objTierItem.transform.Find("lbl1").GetComponent().text = "label1";
    objTierItem.transform.Find("lbl2").GetComponent().text = "label2";
    objTierItem.transform.Find("lbl3").GetComponent().text = "label3";
    objTierItem.transform.Find("lbl4").GetComponent().text = "label4";
    objTierItem.transform.Find("lbl5").GetComponent().text = "label5";
    objTierItem.transform.Find("lbl6").GetComponent().text = "label6";
    }
    }
    }



    GameObjectの配列を作って、大本のTierオブジェクトをアサインします。




    この3個をアサインするだけ。
    あとは子供のTMPのコンポーネントをFindとGetComponentするだけです。

    処理速度的には前者のアサインのほうが軽いと思いますが‥‥
    FindとかGetComponentは重いって言いますしね。

    ということで、同じ構成のオブジェクトを触る時の方法でした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/986-624fc142
    この記事にトラックバックする(FC2ブログユーザー)