Unity

Unity学習

Unity アンドロイド端末で起動時ゲームが重い時の対処法 Rendering Device.Present が原因の時 まとめ

いろいろ調べた結果実際にやってみてRenderingを減らせた方法をまとめました。

・対策した原因1 ビルド時にマルチスレッド機能を使用していない シングルスレッドビルドからマルチスレッドビルドでの検証
メリット マルチスレッドなので古いアンドロイドほど効果を発揮する
デメリット mp4など動画再生時ちらつきが発生する場合がある

f:id:runarunaoukoku:20190422174228p:plain

設定後 マルチスレッド実機ビルド後 平均Total10~20下げることができた
実機で触ってみた感触: 全体的にもっさり感がなくなった気がする  戦闘時のアニメーションはたいして変らない印象だった

・対策した原因2 垂直同期を切る
ProjectSettings→Quality→VSyncCountをDon'tSyncに変更。

メリット 画像処理が速くなる WebGL版でも軽くなる
デメリット ティアリングが発生
画像をきれいに出力してくる機能がoffになる
f:id:runarunaoukoku:20190422174511p:plain

f:id:runarunaoukoku:20190422174522p:plain

・対策した原因3 32 bit display bufferを無効化
メリット 無効化すると16bitになるので処理速度は32bitより早くなります。
デメリット 16bitではグラデーションなどで階調がなめらかに出ず縞模様のようになることもあります。
f:id:runarunaoukoku:20190422175801p:plain
Playerの設定から32 bit display bufferを無効化

最後にすべて適応した結果
f:id:runarunaoukoku:20190422175849p:plain

f:id:runarunaoukoku:20190422175907p:plain

本当に少しだけFPSが減りました。。。随時調べます。。。
・対策した原因4 画画像を使用しているマテリアル 項目変更
画画像を使用しているマテリアルの「Shader」の項目を「Standard」に切り替えてみました(半透明にしたかったので別のものに変えていたんですよね)。
Gfx.WaitForPresent が消える。