VRのUnityプロジェクトが激重になったので、どうにかしたい。
まずはプロファイラを見るところから。
何もわかっていないので間違っていると思います。
Statistics
GameViewの右上からみれる
Unity2019だとめっちゃ見やすい
レンダリング統計ウィンドウというらしい
プロファイラのRenderingのところでも見れる数値の一部と同じ?
Batches数はモバイルだと200以下がいいって。
2000ぐらいになってるときがあった。
fpsはVRなら60以上。
90,120とか欲しいのかな?
プロファイラー
Unityのプロファイラー
Window>Analytics>Profiler
見方参考リンク
少し古いけど、このスライドが各項目解説してあってとても良かった。
スキャンの長さ変更
ちなみにUnity2019.3だと、以前は300フレームしかスキャンされなかったが2000まで増やせるようになる!
Preferences>Analysisから変えられる
おおー長い〜〜
最近プロファイラを勉強しているので嬉しい!
以前はVRで処理が重くなったとこで止めようとしてももたもたして間に合わなかったので。
メモリー
UnityはUnity側のメモリ、MonoはC#のメモリ
Monoが大きいなら自分たちのスクリプトのせい?
Reserved Totalは予約されているメモリ
C#メモリが膨らんでいる。ファイル読み込みや通信のために一時的に大量のc#メモリを使用している。
GameObject in SceneはGameObjectの数。
モバイルなら3000程度らしい
TotalObjectCountが増え続けていたら破棄されていないのでまずい
左上からDetaied>Take Sample Editorで細かい内訳が見れる
右のReferencedByからどのオブジェクト化をシーンでハイライトできる。
CPU
CPUのRenderingが多かったら描画が重い。それ以外はロジックが重い
Othersをオンにするとかなり増える
CPUのある個所を押したらこんな感じ。
Time msが多い場所を見ると良い
BehaviorUpdateの下がスクリプトのUpdateの処理。
Canvas.SendWillRendercanvasesがUI処理(見当たらない)
Physics.Processingが物理
Timelineにしたらこの表示
描画が重いかどうか
解像度をかなり下げてfpsが上がるかどうか
FrameDebugger
余計な描画はWindow>Analytics>FrameDebugger
見方がよくわからない・・・
OVRProfiler
OculusIntegrationを使っているとOculus>Tools>OVRProfilerでプロファイラを見れる
目安も書いてある
CPU
Triangles(メッシュ):10万以下がよい
Vertices(頂点):10万以下がよい
Draw Call:100以下がよい
200を超えたあたりから見直しが必要
Draw Call=Batch数
CPUの負荷になる
マテリアルを減らすといい
参考
まだ見てないけど・・・
最後に
何もわからない
StandaloneでやるよりEditorでやるほうが軽いこともある。なぜならエディターにはデータのキャッシュがあるから