転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

ゲーム制作再開!時間カウントアップ方法を徹底解説

かなり久しぶりに、フリーゲーム投稿サイトのunityroomにゲームを投稿しました。
unityroom.com

操作は矢印キーで車を操作し、障害物にぶつからないようにゴールを目指すシンプルゲームです。
2023年は1本もゲームを作れておらず、このままではゲーム開発をやめてしまう危機が。。。ということで、2024年はなるだけゲームを作る年にします。

久しぶりにunityを起動したのですが、色々と忘れてる。色々と調べなおしながらやっているので、調べたことはメモとして残していきます。

時間のカウントアップ実装方法

このゲームではゴールまでの時間を計測するために、時間のカウントアップを実装しました。
方法としては、Time.deltaTimeを使いました。

public bool counfFlg;

public float timerValue;

[SerializeField] Text time;

private void Update() {

    UpdateTimer();

}

public void UpdateTimer() {

    if (countFlg) {

        timerValue += Time.deltaTime;
        time.text = timerValue.ToString("N2");

    }
        
}

Time.deltaTimeは実装例としてよく使われているので、これまで何も考えずに使っていましたが公式リファレンスを確認してみました。
docs.unity3d.com
Time.deltaTimeはフレーム間の秒数を返すため、フレーム毎のTime.deltaTimeを加算すればカウントアップができる仕組みです。

ちなみに、表示時間としては少数下2桁までの表示にしたかったため、ToStringメソッドに引数を追加しています。
上のソースコードでは、timerValueにTime.deltaTimeを加算していき、最終的にtime.textに表示しています。