あっ、ども、あけましておめでとうございます。
とはいってもこのブログには日付を書いてませんので、いつ書いたかわかりませんよね笑
Contents
はじめに
さて、今回は複数あるうちの一つの子要素の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の違いだったのか.
全王様もおったまげ
コメント