クリエイターの教科書

ChatGPT, Stable Diffusion、Python, Visual Studio、Excelなどいろんな教科書

【Unity】EXEにすると動作がかなり遅くなった?

UnityでEXEにするとエディター版に比べて動作が遅い場合の対処です。

うちではエディタでは30FPSぐらいのものが、EXEにすると5FPSぐらい?とかなり遅くなりました。やっていることは白画像を使ったフェードアウト表示ぐらいですので、プログラムが遅いというのはなかなか考えにくいです。

EXEにすると動作が遅い場合

動作を最適化する

まず元のプログラムは、EXE版にそなえて最適化しておきましょう。

 

例えば「Window>Analysis>Profiler」でプロファイラーを立ち上げてからエディタ内でゲームを実行します。

 

これにより、レンダリング、スクリプト、フィジックス(物理)、アニメーションのどれがどの場面で負荷がかかっているかがわかります。

 

それに応じて動作を軽くする処理をしておきます。

 

EXEの表示時間を早くする

プロジェクトセッティングでFixed Timestepの値を小さくし、処理頻度を上げます。

 

VSyncをオフる

プロジェクトセッティングのQualityで、Vsync countを「Don't sync」にします。

Vsyncはモニタのリフレッシュレートにあわせるものですが、固定FPSにしたい場合にはオフったほうがいいかもしれません。

 

ちなみにうちではVSyncが影響していたようで、オフで治りました。

 

参考

Resolved - Game runs in slow motion in build compared to editor. - Unity Forum

 

 

解像度をあわせる

エディタ内でのゲームプレビューと、EXE版で実行した場合のゲームの解像度が違うことでパフォーマンスに影響が出ることがあります。

プロジェクトセッティングのPlayerからEXEのフルスクリーンを解除。Windowedにして小さいウィンドウで動作をチェックしてみましょう。

 

Time.deltaTimeを使う

一般的にスクリプトによってモノを動かしたりする場合、PCの処理性能の差をうけないように「Time.deltaTime」を使います。

Time.deltaTimeは、ゲーム内の経過時間を表します。

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ