質問: GameObject.FindGameObjectsWithTag("Char").GetComponent(); の方法をすると、 下記エラーが発生(回避方法がみつからず) error CS1061 Type `UnityEngine.GameObject[]' does not contain a definition for`GetComponent' and no extension method `GetComponent' of type`UnityEngine.GameObject[]' could be found. Are you missing an assembly reference? ・Resources.FindObjectsOfTypeAll(typeof(Text)) の方法をすれば、一応フォントは変更されるが、関係のないテキストまで全て影響が及んでしまうため使えず ・charBoxの子オブジェクトのテキストコンポーネントにアクセス、という考え方でできないか、試みてみましたが、該当するようなメソッドはないような気がしています。(GetComponentsInChildrenが、近いかなと思いました) 何卒、お願い致します。
回答: 1つ目の方法については、FindGameObjectsWithTagによって得られるのはゲームオブジェクトの配列ですので、その中身のゲームオブジェクトについてそれぞれTextコンポーネント取得・フォント設定を行う形に書き換えてみてはいかがでしょう。 ``` private void FontChange() { foreach (var charObject in GameObject.FindGameObjectsWithTag("Char")) { charObject.GetComponent().font = _font; } } ``` 2つ目の方法はおっしゃる通り今回のケースでは使えなさそうですが、3つ目の方法は悪くない発想のように感じます。 下記のようにしてみるとどうなるでしょうか。 ``` private void FontChange() { foreach (var text in charBox.GetComponentsInChildren()) { text.font = _font; } } ```