見出し画像

Unity フレームレートを固定したのにPCによって処理速度に差が出るときの対処法

どうもマカロンです。

今日は久々に役に立つ技術記事を書こうと思います

それでは行きましょう!

まず前提として

そもそもフレームレートをちゃんと固定できてるかを確認するために

一応手順を載せておきます

①Quality Settingsの変更

Unityのメニューから<Edit>→<Project Settings>→<Quality>を選択してインスペクターから<VSync Count>の項目を変更する。

あsdキャプチャ

<Every VBlank>(垂直同期)から<Don't Sync>(垂直同期無し)へ

②Application.targetFrameRate

Application.targetFrameRate = 60; //FPSを60に設定 

​垂直同期を無効にしたことで手動でFPS値を設定できるのでvoid Start()などに自分の設定したいFPS値を例のように入力




重要なのは処理速度!

さてここから本題ですが、Qualityの項目の一番上に注目してみてください

キャプチャあsdfg

<Levels>という項目があるかと思います。

これはPCによってスペックが違うので、そのPCに見合った処理速度に自動的に変更してくれるというものです緑色のチェックマークがデフォルトです。

しかしこれが問題

これをデフォルトのままにしてしまうとPCによって処理速度が変わってしまうのでゲームでいうとPCによってプレイヤーの移動速度が変わってしまうわけです。

なので次のような形に変更しましょう!

キャプチャ11

チェックマークを一つだけにして後は外しちゃってください

こうすればいやでもHighで動かすしかなくなります。ちなみになんでHighかというとUltraやVery Highのみにしてしまうとスペックの低いPCでの動作が安定しなくなる(カクカクする)ためHighにする




最後に

今回はFPS値についての記事でした。

この前の桃鉄の記事みたいな私の好きなゲームについても今後書いていけたらいいなと思っております。

ではまた!

ゲームを作るにはやはりお金がないとできることが限られてしまいます。なのでよろしければどうか支援してくださるとうれしいです