【ハルシオンブログ】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]
GameObjectの配列を作って、大本のTierオブジェクトをアサインします。

この3個をアサインするだけ。
あとは子供のTMPのコンポーネントをFindとGetComponentするだけです。
処理速度的には前者のアサインのほうが軽いと思いますが‥‥
FindとかGetComponentは重いって言いますしね。
ということで、同じ構成のオブジェクトを触る時の方法でした。
では、あでゅ~ノシ
今日の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)
« 【ハルシオンブログ】ボタンを押せる範囲を簡単に広げる | 【ハルシオンブログ】UnityでAndroidのバックキー対応 »
コメント
| h o m e |