Unity-Time時間類(2)

前篇介紹的是Time.time與Time.deltaTime,本篇則是介紹有關時間縮放及停止的Time.timeScale。

Time.timeScale

  • timeScale是一種返回float數據類型的static屬性,同時具有get與set屬性
    timeScale01
  • 功能主要控制時間的縮放,可以用來暫停、撥放、加快、變慢等效果

範例:觀念

public void PlayandPause()
    {
        //按鈕按一下撥放,再按一下暫停
        //原形
            if (Time.timeScale == 1.0f)
            {
                Debug.Log("Pause-遊戲進行時間為:" + Time.time + "秒");

                Time.timeScale = 0.0f;
            }
            else if (Time.timeScale == 0.0f)
            {
                Debug.Log("Play-遊戲進行時間為:" + Time.time + "秒");

                Time.timeScale = 1.0f;
            }

        //衍生
        //    if (Time.timeScale == 1.0f)
        //    {
        //        Debug.Log("Pause-遊戲進行時間為:" + Time.time + "秒");

        //        Time.timeScale = 0.2f;
        //    }
        //    else
        //    {
        //        Debug.Log("Play-遊戲進行時間為:" + Time.time + "秒");

        //        Time.timeScale = 1.0f;
        //    }
    }

範例:完整程式碼

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

public class CodingSample : MonoBehaviour
{
    public float AngleSpeed;
    public float Speed;
    public Text messageLog;
    public Text messageLog2;
    int[] bb = new int[5] { 0, 54, 72, 12, 99 };

    void Start()
    {
        messageLog.text = "Play";
        messageLog2.text = "遊戲已進行:" + 0 + "秒";
    }

    // Update is called once per frame
    void Update()
    {

        messageLog2.text = "遊戲已進行:" + Time.time + "秒";
        transform.Rotate(Vector3.up, Time.deltaTime * AngleSpeed);
        transform.position += new Vector3(0, Time.deltaTime * Speed, 0);//移動方法(1)

    }

    public void PlayandPause()
    {
        if (Time.timeScale == 1.0f)
        {
            Debug.Log("Pause-遊戲進行時間為:" + Time.time + "秒");
            messageLog.text = "Pause";

            Time.timeScale = 0.0f;
        }
        else if (Time.timeScale == 0.0f)
        {
            Debug.Log("Play-遊戲進行時間為:" + Time.time + "秒");
            messageLog.text = "Play";
            Time.timeScale = 1.0f;
        }
    }
}

執行結果:

發表留言