Unity フレームレートを固定したのにPCによって処理速度に差が出るときの対処法
どうもマカロンです。
今日は久々に役に立つ技術記事を書こうと思います
それでは行きましょう!
まず前提として
そもそもフレームレートをちゃんと固定できてるかを確認するために
一応手順を載せておきます
①Quality Settingsの変更
Unityのメニューから<Edit>→<Project Settings>→<Quality>を選択してインスペクターから<VSync Count>の項目を変更する。
<Every VBlank>(垂直同期)から<Don't Sync>(垂直同期無し)へ
②Application.targetFrameRate
Application.targetFrameRate = 60; //FPSを60に設定
垂直同期を無効にしたことで手動でFPS値を設定できるのでvoid Start()などに自分の設定したいFPS値を例のように入力
重要なのは処理速度!
さてここから本題ですが、Qualityの項目の一番上に注目してみてください
<Levels>という項目があるかと思います。
これはPCによってスペックが違うので、そのPCに見合った処理速度に自動的に変更してくれるというものです緑色のチェックマークがデフォルトです。
しかしこれが問題
これをデフォルトのままにしてしまうとPCによって処理速度が変わってしまうのでゲームでいうとPCによってプレイヤーの移動速度が変わってしまうわけです。
なので次のような形に変更しましょう!
チェックマークを一つだけにして後は外しちゃってください
こうすればいやでもHighで動かすしかなくなります。ちなみになんでHighかというとUltraやVery Highのみにしてしまうとスペックの低いPCでの動作が安定しなくなる(カクカクする)ためHighにする
最後に
今回はFPS値についての記事でした。
この前の桃鉄の記事みたいな私の好きなゲームについても今後書いていけたらいいなと思っております。
ではまた!