2018年10月27日
【Unity】FPS(フレームレート)を取得する
FPSとは
FPSとは、
「Frame Per Second」
の頭文字から取ったもので、
「一秒間に呼び出すフレーム数」
のことです。
分かり易いのが、
「パラパラ漫画」
とかですかね?
1秒間に100枚パラパラ出来るのか、
1秒間に1000枚パラパラ出来るのか
で「表示の細かさ」が変わってきます。
後者の方が動きを上手く捉えられそうじゃないですか?
まぁ、FPSについてはそんなものです。
「FPS自体」については、
こちらで丁寧に解説している方がいるので
参考にどうぞ。
『フレームレート(FPS)って何?どのくらいの値にすればいいの?』
UnityでFPSを取得しよう
さてさて、本題の
「FPSの取得」
です。
取り敢えずFPSを表示する
まぁ、表示するだけなら
Gameウィンドウの上の「Stats」から見れます。
スクリプトでテキトーに計算する
スクリプトを使って頑張って
FPSを算出します。
using UnityEngine;
using System.Collections;
public class SampleScript : MonoBehaviour {
void Update() {
float fps = 1f / Time.deltaTime;
}
}
これでFPSを算出できます。
FPSの算出には、Time.deltaTimeの逆数を用いています。
※Time.deltaTimeは1つ前のフレームからの経過時間(秒)を表します。
1秒間に何回フレームが呼ばれたのかを
計算するので、1fをTime.deltaTimeで割っています。
一応、「fps」という変数に
突っ込んでありますのでそのまま使えます。
まぁしかし、
このままだとUpdate毎にFPSを
計算していますので
ズバズバ数値が変わっていきます。
ズバズババッ
安定した、かつ正確なFPSを算出する
Update毎に数値が変わるとめまぐるしい。
ならば一定秒数ごとに計算すれば良かろう?
using UnityEngine;
using System.Collections;
public class Re_SampleScript : MonoBehaviour {
float fps;
int frameCount;
float nextTime;
void Start () {
nextTime = Time.time + 1;
}
void Update () {
frameCount++;
if ( Time.time >= nextTime ) {
fps = frameCount;
frameCount = 0;
nextTime += 1;
}
}
}
一秒ごとに「fps」変数に
算出したfps値を代入しているので
変数をそのまま使えます。
終わりに
今回はここまでです!
どうにかしてちゃんとしたFPSを
割り出したかったのでメモりました。
ではまた次回
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/8240904
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
※ ブログに表示されるのは、主の承認が必要なので時間がかかります!
コメントに気づかない場合もありますので、返信が遅れる場合も...