コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Rider】Unity においてパフォーマンスがあまり良くないコードをマークする

はじめに

f:id:baba_s:20190907211905p:plain

Rider で Unity 連携を有効化すると、
Unity においてパフォーマンスがあまり良くないコードを
ハイライト表示やマークして教えてくれるようになります

ハイライト表示やマークの種類

f:id:baba_s:20190907211919p:plain

例えば、Update、LateUpdate、FixedUpdate などの関数や

f:id:baba_s:20190907211934p:plain

コルーチンは、あまり良いパフォーマンスではないため、マークが表示されます

f:id:baba_s:20190907211939p:plain

また、Update 関数などから呼び出されている他の関数も
毎フレーム呼び出されていることがわかるようにマークが表示されます

f:id:baba_s:20190907211944p:plain

下記のような、処理が少し遅いコードはハイライト表示されます

  • GetComponent 系の関数
  • AddComponent
  • Find 系の関数
  • SendMessage や Invoke などの文字列ベースの関数呼び出し
  • Camera.main などの、内部で Find 系の関数が呼び出されているプロパティ
  • null チェック
  • Debug.Log 系の関数

良いパフォーマンスのコードに自動で変更

f:id:baba_s:20190907211955g:plain

例えば、GetComponent 関数を選択した状態で Alt + Enter を押して
「Introduce field and initialise in 'Start'」や
「Introduce field and initialise in 'Awake'」を選択すると、
GetComponent の呼び出しを Start や Awake に移動して、
さらに GetComponent で取得した参照を保持するための変数を自動で定義してくれます

参考サイト様