Unity メモ – FPSカウンターの作り方

Posted: 2012年5月28日 カテゴリー: プログラミングメモ, Unity, Unity メモ
タグ:, , , , ,

最近Unityを使う事があるので、Unity嫌いにも関わらず、気が向いた時にUnity関連のメモを書くことにしました。

今回は、GUI TextにFPSを表示させるスクリプトについてメモります。ちなみに、Unityメモで書くコードは全てC#にする予定です (C# ラブ!)

GUITextのゲームオブジェクトを作る自体は簡単なので、スクリプトだけ解説します。

まず、必要な変数を宣言します。

public class FPSCounter : MonoBehaviour
{
public float m_updateInterval = 1.0f;  // 更新される頻度
float m_accumulated   = 0.0f;
float m_timeUntilNextInterval; //  次の更新までの残り時間
int m_numFrames = 0;

次に、Start()メソッド内で、FPSを更新させる頻度を初期化します。頻度は、エディター上から変更できます。

void Start()
{
m_timeUntilNextInterval = m_updateInterval;
}

次に、Update()メソッドで、FPSの更新処理を実装します。まずは、更新までの時間を経過した時間分減らし、フレーム数を加算します。

 void Update()
{
m_timeUntilNextInterval -= Time.deltaTime;
m_accumulated += Time.timeScale / Time.deltaTime;
++m_numFrames;

そして、更新までの時間が0を切ったら、FPSを更新します。この部分で、FPSの計算と、次の更新までの時間をリセットします。

if( m_timeUntilNextInterval <= 0.0 )
{
// FPSの計算と表示
float fps = m_accumulated / m_numFrames;
string format = System.String.Format( "FPS: {0:F2}", fps );
guiText.text = format;

m_timeUntilNextInterval = m_updateInterval;
m_accumulated = 0.0F;
m_numFrames = 0;
}
}

スクリプトは以上です。後は、GUI Textのゲームオブジェクトをシーン内に追加し、スクリプトを足してください。

 

実行結果は、以下の用になります:

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中