0 支持
469 閲覧
再生したときに、FPSが2.4くらいですごくカチカチです。

どうすればもっと滑らかに動きますか?
閉鎖
| 469 閲覧

回答 3

0 支持
ベストアンサー

以下のURLを参考にしてください。その下は引用してあります。

http://unityleaning.blog.fc2.com/blog-entry-2.html

"

Unityのデフォルト設定では、実行環境によってFPS(フレームレート)が自動で調整されるようになっている。
(スタンドアローンのゲームでは可変フレームレート)

移動などの処理には Time.deltaTime (前のフレームから今のフレームまでの時間)を掛けて
可変フレームレートで開発するのが良いらしいが、設定でFPSを固定することもできる。
 

Quality Settingsで垂直同期を変更


まずはUnityのメニューから"Edit"→"Project Settings"→"Quality"を選んで、
インスペクターから"VSync Count"の項目を変更する。

デフォルトでは"Every VBlank"(垂直同期)が設定されており、モニタのリフレッシュレートに同期されている。
(60Hzのモニタを使用なら60FPS、90Hzのモニタを使用なら90FPSとなる)

他に、ドロップダウンメニューから"Every Second VBlank"(垂直同期の半分)と"Don't Sync"(垂直同期無し)があるので、
FPSを固定する場合は"Don't Sync"(垂直同期無し)を選ぶ。
 

Application.targetFrameRate


static int targetFrameRate;

Application.targetFrameRateに数値を入れることで目標FPSを自分で設定できる。
デフォルトでは-1。(スタンドアローンでは可能な限り早く、ウェブプレイヤーでは50~60FPS)
垂直同期無しに設定して、パブリッシュしないとコードを書いても反映されないことに注意(エディター上でゲームを再生しても反映されない。)

(例)
void Awake() {
Application.targetFrameRate = 60; //60FPSに設定
}

"

見習い回答者 (800 ポイント)
+4 支持
何故処理が遅いかというと、重い処理をしているから、以外にないかと……
重い処理をしている部分を改善すれば早くなります。
unityでのゲーム制作の場合ですと、ハイポリモデルを出しすぎだとか、
ゲームオブジェクト出しすぎだとか、あるいはポストエフェクトをかけすぎ、
なんかがよく見かける例ですが、それ以上の具体的な改善点となると、
どういうゲームを作ろうとしているのかとか、
あるいは編集・実行画面のスクリーンショットとかの情報が欲しいところです。

unityに付属しているprofilerという機能を使えば、
具体的なボトルネックの箇所を調べることができます。
ただ、読み解くにはある程度の知識が必要となります。
そのあたりは検索すれば解説しているページがいくつもヒットするかと思います。
達人回答者 (6.2k ポイント)
0 支持
ここまで重くなる原因は、Terrain使っているからなのではないかと推察。

Unity terrain

で、検索すると軽くするための情報が出てきますので、参考になれば……。
初心者 (280 ポイント)

関連する質問

0 支持
1 回答
0 支持
1 回答
0 支持
0 回答
0 支持
0 回答
0 支持
2 回答
タピー 初心者 (120 ポイント) 5 日 質問 | 31 閲覧
2021-02-08 質問・回答をMarkdownで入力できるようにしました。
2020-09-03 新たなスパム対策を導入しました。

143 質問

146 回答

153 コメント

171 ユーザー