複数あるうちの一つの子要素のTextを取得したい

error

あっ、ども、あけましておめでとうございます。
とはいってもこのブログには日付を書いてませんので、いつ書いたかわかりませんよね笑


はじめに

さて、今回は複数あるうちの一つの子要素のTextを取得したいと思って備忘録に書いておきます。

開発環境

  • Unity2019.4.17

状況

下のような階層構造になっています。

parentObj(Panel)
-child(Panel)
-child(Text)
-child(Button)

ここで子要素2番目のTextの編集を行いたいということです。


試したこと

1.GetComponentInChildren<Text>

parentObj.transform.GetComponentInChildren<Text> = "text";
Code language: C# (cs)
parentObj.GetComponentInChildren<Text> = "text";
Code language: C# (cs)

と、やってみたが、<Text>の部分で、

エラー CS0119 ‘Text’ は 種類 です。これは特定のコンテンツでは無効になります

と言われた。

さらに、これでは、何番目のchildかわからないのではないかと想像。

2.GetChild()

parentObj.transform.GetChild(1).transform.GetComponents<Text> = "text";
Code language: C# (cs)

なんか頭の悪そうなコード。
しかもまた、<Text>の部分で、

エラー CS0119 ‘Text’ は 種類 です。これは特定のコンテンツでは無効になります

無効にならないでほしい。。。

3.text=

ならば、text=の形にしてみた。

private Text ptext; ptext = parentObj.transform.GetChild(1).transform.GetComponents<Text>();
Code language: C# (cs)

そしたら、またエラー…
(これは自信あった…)

エラー CS0029 型 ‘UnityEngine.UI.Text[]’ を ‘UnityEngine.UI.Text’ に暗黙的に変換できません

これはいいエラーだ!(そんな気がする。)


解決

Text ptext; ptext = parentObj.transform.GetChild(1).GetComponent<Text>();
Code language: HTML, XML (xml)

うわ、なんでこれでって感じだが…

なんてこったい!GetComponentsかGetComponentの違いだったのか.

全王様もおったまげ

コメント

タイトルとURLをコピーしました