【Unity】タイマー機能の作成

どうもozaniです。

制限時間を表示する、タイマー機能をテーマに以下のアプリを作成しました。
アプリの紹介記事はこちら!
【1日1本アプリ開発】柿をかわせ!【16本目】

時間を表示するテキストの作成

手始めに、制限時間を表示するテキストを追加します。
Create > UI > textを選択して、テキストを追加します。

今回のアプリでは60秒をカウントするので、初期のテキストに書かれている内容を60秒とします。
これは、InspectorタブのTextに60秒を表すように入力してあげればよいです。

これで、画面上に表示するタイマーのテキストが完成しました。

タイマースクリプトの作成

次に、1秒毎にタイマーテキストの表示を変更する、タイマースクリプトを作成しました。

	
    public class GameMaster : MonoBehaviour
    {
        
        public Text timer_text; // タイマーテキストを設定します。
        int timer_count = 60;  // 初期は残り60秒

        // Use this for initialization
        void Start()
        {
            StartCoroutine(CountTime()); //CountTime()を数秒(今回は1秒)おきに実行
        }

        public IEnumerator CountTime()
        {
            yield return new WaitForSeconds(1f); //1秒待機
            timer_count--; //制限時間を1秒減らす
            timer_text.text = string.Format("Time:{0}", timer_count.ToString()); //タイマーテキストを変更

            StartCoroutine(CountTime()); //CountTime()を実行
        }
    }

タイマー用のテキストに上記スクリプトをつけることで、制限時間を表示するタイマーとなります。

今回のスクリプトは、Unity(C#)のコルーチンという機能を用いて実装しました。
参考:Unity Document(MonoBehaviour.StartCoroutine)
メインの処理とは非同期に、動作・停止を繰り返し行う仕組みみたいです。

使いこなせたら便利なので、コルーチンについての説明は改めてどこかでしたいと思います。

【使用ゲームエンジン】
Unity2018.3.5.f1

【プロジェクト管理】
git(Bitbucket使用)

コメントする

CAPTCHA