Open13
Unity Tips
最適化
Unity エンジニアはコードチューニングをあまりしない人が多いので、Tipsとして残す
Enum のサイズを計りたい場合は
自作している場合
末尾に、Max
を追加して、その値をサイズとして使う(0始まりを想定しての利用)
FastEnumを使う
FasEnumというのがあるみたいなので、こちらを使った方が良い。速さが全然違う
Mono
配列はSpanに(Listも)
To
メソッドで
Collection の DeepCopyは Getter/ Setterは使うな
これ挟まるだけで遅いので、使わない
あとモジュール凝集度が損なわれて、生産性がよくないので、基本使わない
どこで使うの?
GameObject / GameComponent など Inspector に渡したいものなど
そういう明確にインターフェースとしてわかるように定義して、クラス構造を設計するのが良い。
なるべくクリーンアーキテクチャを意識する。(DDDにする必要はないけど、MVPぐらいは作ろうぜってこと)
Null 合体式が使える
//null比較する三項演算子
a = b!= null? b:c;
// をこれにできる
a = B ?? C;
Build を早くする
Buildレポートを見る
マニュアル
Shader Variant コンパイルを高速化
減らす
ビルドPCのCPUのコア数を増やす
Unity Editor の起動を早くする
Parallel Import を使う
SSDにプロジェクトを配置する
Unity Acceleratorを使う
Editor Iteration Profiler で分析する
Import Activity でインポートに時間がかかっているアセットを整理する
Compilation Visualizer を入れて、コンパイル時間を可視化する
ドメインリロードとシーンリロードを無効にする
Project Settings > Editor > Enter Play Mode Optionsをオンにしてドメインリロードとシーンリロードを無効にする
null比較は 論理演算ではなく、論理式を使う
こちらよりも
if( ClassA != null)
こちらの方が高速
if ( ClassA is not null)
URPのRenderingの設定は管理しましょう
Unity でスクリプトからアセットロード
AssetBundle とか StreamingAssetを使わない場合はこれ