Unityに関連する記事です

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

/// <summary>
/// ゲーム内に制限時間を「分:秒」で表示するクラス
/// </summary>
public class BattleTime : MonoBehaviour {

    [SerializeField, Header("制限時間の設定値")]
    public int battleTime;
    [SerializeField, Header("制限時間の表示")]
    public TMP_Text battleTimeText;

    private int currentTime;              // 現在の残り時間(不要な場合は宣言しない)
    private float timer;                  // 時間計測用

    void Start(){
        // currentTimeを利用する場合にはここで代入する。以下、必要に応じてbattleTimeをcurrentTimeに書き換える
        currentTime = battleTime;
    }

    void Update(){
        // timerを利用して経過時間を計測
        timer += Time.deltaTime;
        // 1秒経過ごとにtimerを0に戻し、battleTime(currentTime)を減算する
        if (timer >= 1) {
            timer = 0;
            battleTime--;  // あるいは、currentTime--;
            // 時間表示を更新するメソッドを呼び出す
            DisplayBattleTime(battleTime);   // あるいは、DisplayBattleTime(currentTime);
        }
    }
    
    /// <summary>
    /// 制限時間を更新して[分:秒]で表示する
    /// </summary>
    private void DisplayBattleTime(int limitTime){
        // 引数で受け取った値を[分:秒]に変換して表示する
        // ToString("00")でゼロプレースフォルダーして、1桁のときは頭に0をつける
        battleTimeText.text = ((int)(limitTime / 60)).ToString("00") + ":" + ((int)limitTime % 60).ToString("00");
    }
}

ゲームシーンにはTextMeshProで作成したTextを用意して、このクラスをアタッチしましょう。
インスペクターからbattleTimeの値を設定することと、TextMeshProをアサインすることを忘れずに行ってください。
なお、通常のTextコンポーネントを使用しても大丈夫ですが、その場合にはクラス内のusing宣言と変数の宣言もText用に変更してください。

画面には
00:00
「分:秒」の形式で残り時間が表示されます。

ここではカウントダウンしていますが、カウントアップして表示する場合にも利用できます。
修正してチャレンジしてみましょう。

また、このクラスを2つのクラスに分割してみましょう。
時間計測用クラスと時間表示用クラスです。
それぞれに必要な変数やメソッドを用意して
作成して動作確認をしてみましょう。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます