コガネブログ

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

【ReSharper】Unity においてパフォーマンスがあまり良くないコードをハイライト表示する

はじめに

f:id:baba_s:20190511154244p:plain

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

Unity 連携の有効化

Unity 連携の有効化の方法は上記の記事で記載しております

ハイライト表示の種類

f:id:baba_s:20190511152709p:plain

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

f:id:baba_s:20190511152712p:plain

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

f:id:baba_s:20190511152716p:plain

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

f:id:baba_s:20190511154244p:plain

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

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

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

f:id:baba_s:20190511153333g:plain

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

ハイライト表示の無効化

f:id:baba_s:20190511153706p:plain

もしも、ハイライト表示が不要であれば、Visual Studio メニューの
「RESHARPER > Options」から「Code Editing > Unity Engine」を選択して
「Highlight expensive method calls in frequently called code」をオフにします

参考サイト様

関連記事