目次
1)デバッガーの効果的な使い方を学ぶ
Debug.Log を使用した問題診断には時間がかかりますが、デバッガーを使用すると問題をより迅速かつ詳細に診断することができます。初めて使用する方は、Visual Studioのガイド(英語)と、VS for Mac 以前に使用されていた MonoDevelop のガイド(英語)をご覧ください。

そのほかのリソース
Visual Studio Tools for Unity の使用を開始するガイド(Microsoft社ドキュメント)
Visual Studio Tools for Unity を使用する(Microsoft社ドキュメント)
2)スクリプティングテクニックのメンタルツールボックスに ScriptableObject クラスを追加する
ScriptableObject クラスは Unity API でも見落とされがちな部分です。ScriptableObject を理解すると、よりすっきりとして、エレガントなアーキテクチャーを構築するのに役立ちます。それは物事をシンプルに保ち、よりデータ志向になり、あなたのプロジェクトにおいてより良い関心の分離を実現することができます。ScriptableObject の詳しい説明と、さらにその適用方法の事例について、Unite にてすばらしい講演が行われました。Overthrowing the MonoBehaviour Tyranny in a Glorious Scriptable Object Revolution(英語) または、Schell Games の Ryan Hipple 氏による素晴らしい講演(英語) をご視聴いただくことで、さらに理解を深めることができます。Unity の Learn チームが提供する動画の講座(英語) も合わせてご覧ください。
3)開発プロセス全体を通して最適化する
パフォーマンスの問題に対する正しい回答の中には、ゲームのデザインを変更する、というものがあります。しかし、最適化のタイミングがプロジェクトの終わりに近づくほど、そのような変更を加えることは難しくなります。最適化するときは、レンダリング統計ウィンドウから始めるのがベターですが、問題を理解するためにはプロファイラーを使うべきです。そこには膨大な量の情報が詰め込まれており、そこから正確な結果を得るためには、エディターではなく実際のビルドを実行している間にゲームのプロファイルを作成しなければなりません。

図:プロファイラーウィンドウ