もう大分前に気付いていた事なんだけど、ちゃんと記事にしておこうと思ったので。
以前にあるゲームオブジェクトのTransformを全取得するスクリプトを公開したが、
もっと簡単に書ける方法があったのでGistに例を上げておいた。
GetComponentsInChildren<取得したいコンポーネント名>で、
そのゲームオブジェクトの子供以下(自身を含む)のオブジェクトの指定コンポーネントを全てかっさらってきてくれる。
結構便利なので覚えておいて損はない。
が、想像に難くないと思うが処理自体は結構重いので、毎フレームこれを呼んだり
これを1度だけ呼ぶオブジェクトが同時に大量生成されたりといった事があると負荷が高い。
(そんな事はほぼないだろうけど・・・)
ちなみにMac PC上で同じ条件で処理速度を測ってみたら、
以前に作った自前のやつ
→約 0.00030 秒
GetComponentsInChildren<>
→約 0.00064 秒
とほぼ倍ぐらいの差があった。
スマホだともっと差が顕著になる可能性があるので、乱用は避けたい所。
記述が短いからといって速度が速いとは限らない典型である。