こんにちは、Unityエンジニアのオオバです。
UnityEngine.Object.name
するだけで、ヒープ領域を毎回確保するようです。
Unityのプロファイラを見てて気づきました。
以下オオバの環境における実績。
iPhone6sによる実機プロファイラでの結果
Unityエディタ上におけるプロファイラの結果(Deep Profile使用)
if (this.name == "hoge"){}
上記のようにコンポーネントやGameObjectの名前を比較対象としてほげほげすることはよくある処理なので、毎フレーム実行している箇所がある場合は、nameをキャッシュして使用するのが良いかと思われます。
なぜ、こうなっちゃうのか原因を追ってもネイティブ側の処理なので分かりません。
.name
は使用箇所によっては見直そう!
この記事が気に入ったらフォローしよう
オススメ記事
検証環境
- Unity2018.2.11f1