【ハルシオンブログ】特定のRoot以下にある同じクラスをまとめてとる方法。
こんにちは。
週末から暑くなってきましたね。
そろそろ夏ですかね?まだ梅雨にもなってないですが・・・今年も暑そうだorz
さてUnityのお話。
同じような話は何回か書いた気もしなくはないが・・・
Unityでこんな構成の時にまとめて文字を変えたい。
もちろんTextじゃなくてもなんでもいいのですが、Root以下の同じクラスをまとめて取得する方法。

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

こんな感じに。
[Blog20220530.cs]
GetComponentsInChildrenの戻り値は指定したクラスの配列になります。
また、こんな感じで他のオブジェクトの子供や孫になっていてもちゃんと取ってくれます。

上記でも問題なく文字が変更されます。
まとめて同じ文字に変えるとかという動きはまずないと思いますが、Rootを指定してその子供のクラスを全部取るというのができるので、使い勝手はよさそうですよね!
ということで、GetComponentsInChildren<クラス>の簡単な使い方の紹介でした。
では、あでゅ~ノシ
週末から暑くなってきましたね。
そろそろ夏ですかね?まだ梅雨にもなってないですが・・・今年も暑そうだ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)
« 【ハルシオンブログ】ゲームオブジェクトかつアクティブでコンポーネントが有効かの確認 | 【ハルシオンブログ】アクティブシーンの再読み込み »
コメント
| h o m e |