読者です 読者をやめる 読者になる 読者になる

スマゲ

スマートなゲームづくりを目指して日々精進

Unityでタイマーを作る

Unityでタイマーを作ってみます

■関連
Unityで時間を扱う - スマゲ

■完成イメージ
f:id:sanukin39:20160410231258g:plain

■UIの準備
uGUIを使っていい感じにボタンを配置する
f:id:sanukin39:20160410231459p:plain

■タイマー機能の実装
Time.deltaTimeを利用して残り時間から直前のフレームに要した時間を引く
残り時間が0になったらタイマーを止める
※更新部分のみ記述

void Update(){
    if(isRunning){
        restTime -= Time.deltaTime;
        if(restTime <= 0){
            StopTimer();
        }
        UpdateTime();
    }
}

■UIの更新
"01:38"のような形式で時間を表せるように表示する

public void UpdateTime(float time){
    timerText.text = string.Format("{0:00}:{1:00}", (int)(time / 60), time % 60);
}

■プロジェクト
GitHubにプロジェクトを公開しました。全コード、シーン構成を見たい方はこちらからどうぞ
github.com


■まとめ
UnityはUIの作成、UIとスクリプトの連携が簡単なのですぐに実装できた
UIの更新をRxを利用したらさらに短いコードで書けそう