Unity3D 計(jì)時(shí)器的實(shí)現(xiàn)代碼(三種寫法總結(jié))
1、每幀檢查
定義一個(gè)時(shí)間變量 timer,每幀將此時(shí)間減去幀間隔時(shí)間 Time.deltaTime,如果小于或者等于零,說明定時(shí)器到了,執(zhí)行相應(yīng)功能代碼,將此定時(shí)器重置,代碼如下:
public float timer = 1.0f; // Update is called once per frame void Update() { timer -= Time.deltaTime; if (timer <= 0) { Debug.Log(string.Format("Timer1 is up !!! time=${0}", Time.time)); timer = 1.0f; } }
2、利用協(xié)程
在協(xié)程中返回需要等待的時(shí)間,直接看代碼便明白:
// Use this for initialization void Start() { StartCoroutine(Timer()); } IEnumerator Timer() { while (true) { yield return new WaitForSeconds(1.0f); Debug.Log(string.Format("Timer2 is up !!! time=${0}", Time.time)); } }
3、延遲調(diào)用
使用 MonoBehaviour.Invoke,兩個(gè)參數(shù),分別是要調(diào)用的方法名和延時(shí)調(diào)用的時(shí)間。代碼如下:
// Use this for initialization void Start() { Invoke("Timer", 1.0f); } void Timer() { Debug.Log(string.Format("Timer3 is up !!! time=${0}", Time.time)); Invoke("Timer", 1.0f); }
補(bǔ)充:unity3D 實(shí)現(xiàn)一個(gè)時(shí)分秒的計(jì)時(shí)器:格式為00:00:00
簡(jiǎn)單粗暴,上代碼。
public class Clock : MonoBehaviour { public Text m_ClockText; private float m_Timer; private int m_Hour;//時(shí) private int m_Minute;//分 private int m_Second;//秒 // Use this for initialization void Start () { } // Update is called once per frame void Update () { m_Timer += Time.deltaTime; m_Second = (int)m_Timer; if (m_Second > 59.0f) { m_Second = (int)(m_Timer - (m_Minute * 60)); } m_Minute = (int)(m_Timer / 60); if (m_Minute > 59.0f) { m_Minute = (int)(m_Minute - (m_Hour * 60)); } m_Hour = m_Minute / 60; if (m_Hour >= 24.0f) { m_Timer = 0; } m_ClockText.text = string.Format("{0:d2}:{1:d2}:{2:d2}", m_Hour,m_Minute,m_Second); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Winform窗口實(shí)現(xiàn)多顯示屏顯示的2種方法
這篇文章主要介紹了Winform窗口實(shí)現(xiàn)多顯示屏顯示的2種方法,本文直接給出了實(shí)現(xiàn)代碼,并對(duì)其中的一些重要參數(shù)做了解釋,需要的朋友可以參考下2015-06-06