FC2ブログ
    04 «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.31.» 06

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

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

     

    【ハルシオンブログ】特定のRoot以下にある同じクラスをまとめてとる方法。 

    こんにちは。
    週末から暑くなってきましたね。
    そろそろ夏ですかね?まだ梅雨にもなってないですが・・・今年も暑そうだorz

    さてUnityのお話。
    同じような話は何回か書いた気もしなくはないが・・・

    Unityでこんな構成の時にまとめて文字を変えたい。
    もちろんTextじゃなくてもなんでもいいのですが、Root以下の同じクラスをまとめて取得する方法。




    Textsの子供にある、数あるuGUIのTextの文字を一気に変えたいって時、GetComponentsInChildrenを使うと楽ですよね。



    こんな感じに。

    [Blog20220530.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20220530 : MonoBehaviour
    {
    public GameObject uiBase;
    public Button btnExe;

    void Start()
    {
    btnExe.onClick.AddListener(ExecuteScript);
    }

    void ExecuteScript() {
    Text[] texts = uiBase.GetComponentsInChildren<Text>();
    foreach (Text txt in texts) {
    txt.text = "文字変更したよ";
    }
    }
    }



    GetComponentsInChildrenの戻り値は指定したクラスの配列になります。

    また、こんな感じで他のオブジェクトの子供や孫になっていてもちゃんと取ってくれます。



    上記でも問題なく文字が変更されます。

    まとめて同じ文字に変えるとかという動きはまずないと思いますが、Rootを指定してその子供のクラスを全部取るというのができるので、使い勝手はよさそうですよね!

    ということで、GetComponentsInChildren<クラス>の簡単な使い方の紹介でした。


    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

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