エンジニアはこわくない

好きなように書く

Unityを使用して画面にタイマーを表示させる


スポンサーリンク

f:id:tsujitaku50:20170109120613p:plain

Unityの2D機能を使ってクソゲーを作っているのですが画面のスクロールなどはなんとか形には なったので、次は画面にタイマーを表示させたいと思いました。

今回はその方法を書いていきます!

他の方法もたくさんあるとは思いますが、今回は僕が使用した方法を書いていきます。

まずはUnityの画面でTextを貼り付けます。

create→UI→Textを選んで画面にtextを貼りつけます。

f:id:tsujitaku50:20170109115005p:plain:w300

するとUnityの画面に「New Text」と表示されると思います。

f:id:tsujitaku50:20170109120442p:plain

ここにタイマーを表示させたいと思います。

ここからはC#でコードを書いていきます。

Assets→Create→C#ScriptでTimer.csというC#のファイルを作成します。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Timer : MonoBehaviour {

        Text text;

    // Use this for initialization
    void Start () {

                    text = this.GetComponent<Text> ();

    }
    
    // Update is called once per frame
    void Update () {
                timer += Time.deltaTime;
                text.text = timer.ToString ();
    }   
}

コードをまるまる貼り付けるとこんな感じです。内容的にはかなり簡単です。

以下の部分で先ほど画面に貼り付けたTextの情報を取得して変数textに格納しています。

Startメソッドの中にこのコードを書くのでゲームがスタートした段階で取得します。

text = this.GetComponent<Text> ();

以下の部分でスタートした時からの時間(秒)を取得してtimerという変数に格納しています。

Time.deltaTimeというのはUnityが用意している時間を扱うものだと思ってもらって大丈夫です。

timer += Time.deltaTime;

最後に以下の部分ですが、ここでちょっと注意があります。

変数timerには時間が入っています。この変数をtextに入れようと思うと変数timerをString型に変換してやる必要があります。

そこでToString()メソッドを使用して変数timerをString型にしているわけです。

text.text = timer.ToString ();

その結果は

f:id:tsujitaku50:20170109115801p:plain

画面にちゃんとタイマーが表示されました!完成です!

ただ小数点がものすごく表示されてるんですよね・・・。

今回は小数点以下はいらないので秒数だけ表示する方法を調べてわかり次第追記しますね!