Meiryo’s blog

やってみて詰まったことを備忘録として残すブログ

【Unity】SerializeFieldでセットするかGetComponentで取得するか迷った

昔「GetComponentは重いぞ」みたいなことを
聞いたことあったような気がするので、
今作っているやつはSerializeField使ってInspector上で
オブジェクトをセットしてそれをスクリプトでいじって、ってやっています。
が、「これはこれでいいのか?実際GetCompornentは重いのか?」って気になったからググりました。
そしたらどうやら同じことを思った外人ニキの質問が見つかりました。

gamedev.stackexchange.com

この質問の回答によると

  • 効率は変わらんよ
  • 最初に設定してその後いじる必要がないのであればGetCompornent()を使うがよろし
  • GetCompornentが重い?キャッシュして使いなさい。FindObjectも同様。

みたいなことを言ってるっぽい。
よーしこれでどうすればいいかわかった。

あとこの問題を解決する途中で↓の記事を発見
これ「Unityで気を付けること集」みたいになっててすげーよかったからメモ
(GetCompornent重い関係も書いてあった) qiita.com