まわ

勉強したことや遊びのこと

開発日誌: Unity::アドベンチャー3Dゲーム開発vol.5::タイマー実装

f:id:k_mawa:20180201113913j:plain

コメント

タイマー実装します。よく実装するものなので、押さえときたいですね^^

手順1:CanvasのオブジェクトにTimerUITextを追加

UIについかするのでCanvasですね。 GameObject>UI>Textです。

手順2:C#スクリプトを記載・機能追加

スクリプトを記載します。Canvasに引っ付けてあるC#スクリプトに記載しました。

using UnityEngine.UI;
using UnityEngine.SceneManagement;


public class scorecontroll : MonoBehaviour {

    public Text Timer; //Timerを宣言
    public static float Timer_sec = 120.0f; //初期設定は120秒。
    //タイマーはfloatで宣言しましょう。他のスクリプトで参照できるようにstaticも入れておく(タイマー30秒前でイベント発生など)

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {

        if (Timer_sec >= 0) //Timer残り時間が0秒以上なら
        {
            Timer.text = Timer_sec.ToString("N2"); //Timerのテキスト部分に残り時間を文字列に直して小数第2位まで(N2)表示
            Timer_sec -= Time.deltaTime; //Timerの残り時間に時間経過を加算
        }

        if (Timer_sec < 0) //Timer残り時間が0秒未満なら
        {
            Timer_sec = 0; //Timer残り時間を0きっちりにする(UPDATEはフレームごとに起きるので0を下回るときがある)
            Timer.text = Timer_sec.ToString("N0"); //小数点以下切り捨てで残り時間0秒を表示
            SceneManager.LoadScene("main"); //"main"シーンへ移動(ほかのエンディングシーンとか移動もここを書き換える)
        }

    }

手順3:TimerUITextとC#スクリプト紐づけ

Canvasのオブジェクトに最初の手順1で追加した、TimerUITextを追加します。 f:id:k_mawa:20180201212337j:plain

手順4:完成

これでうまく動きました。 f:id:k_mawa:20180201114148j:plain