FC2ブログ
    09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】deltaTimeを使えばストップウォッチとか、ゲームのタイマーとか作れます。( ー`дー´)キリッ 

    こんにちは。坂内っす。
    祝日のためブログが1週間飛びました。
    俗にいうシルバーウィークでしたね。皆さんどうお過ごししたでしょうか?

    あー 旅行いきたい!


    Unityでタイムを計る方法。
    ストップウォッチ的な感じや、ゲームの残り秒数的な奴の作り方。

    幾つかやり方あると思いますが、簡単そうなのはTime.deltaTimeを使う方法でしょうか。

    簡単にストップウォッチ的なものを作ってみます。

    [Blog20210927.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20210927 : MonoBehaviour
    {
    [SerializeField] Text lblTime;
    [SerializeField] Button btnStart;

    enum TimerStat {
    None,
    Counting,
    Stop,
    }
    TimerStat stat;
    float timer = 0f;

    private void Start() {
    lblTime.text = "";
    stat = TimerStat.None;
    btnStart.onClick.AddListener(OnClickButton);
    btnStart.GetComponentInChildren<Text>().text = "開始";
    }

    void OnClickButton() {
    switch (stat) {
    case TimerStat.None:
    case TimerStat.Stop:
    timer = 0f;
    stat = TimerStat.Counting;
    btnStart.GetComponentInChildren<Text>().text = "ストップ";
    break;
    case TimerStat.Counting:
    stat = TimerStat.Stop;
    btnStart.GetComponentInChildren<Text>().text = "開始";
    break;
    }
    }

    private void Update() {
    if (stat == TimerStat.Counting) {
    timer += Time.deltaTime;
    lblTime.text = timer.ToString("n1");
    }
    }
    }




    Updateの中にすべてが詰まってます。
    Time.deltaTimeを足しこんでいけば、ボタンを押してからの時間が取れますね。
    あとは表示しているだけです。

    ゲームのタイマーなんかもTime.deltaTimeを使えばカウントダウンできますね。

    ということで、タイマー系にはdeltaTimeが使えるよという話でした。
    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/827-eca080ed
    この記事にトラックバックする(FC2ブログユーザー)