Unity 計時器

c#做爲一門強大的編程語言絕對有計時器這樣的功能,並且有3鍾,unity能用的有2種。
System.Timers.Timer t = new System.Timers.Timer(1000);//實例化Timer類,設置間隔時間,單位爲毫秒; 
t.Elapsed += new System.Timers.ElapsedEventHandler(event);//到達時間的時候執行「event」函數(方法); 
t.AutoReset = true;//設置是執行一次(false)仍是一直執行(true),一直執行就是每到設定的時間都執行一次。; 
t.Enabled = true;//是否執行System.Timers.Timer.Elapsed事件(這個必定要是true,不然沒法執行);
public void event(object source, System.Timers.ElapsedEventArgs e) //被綁定的方法(函數)

在這兒添加你想執行的內容

另一種我就不介紹了。
我測試了一下,除了不能在Flash平臺使用這個計時器,其餘平臺都行。
計時器還有不少強大功能,你本身慢慢研究吧!編程

我上面介紹的定時器中c#

AutoReset屬性默認爲true,即每到時間就會執行一次
而Enabled屬性呢,默認爲false
可是咱們通常不直接更改Enabled屬性來啓動或中止定時器,而是用start()或stop()方法來啓動或中止。
System.Timers.Timer t = new System.Timers.Timer(1000);
t.Elapsed += new System.Timers.ElapsedEventHandler(event);
t.start():
public void event(object source, System.Timers.ElapsedEventArgs e) //被綁定的方法(函數)

在這兒添加你想執行的內容
}
這樣的話每隔1秒就執行一次event方法,若是不讓它再執行,就輸入
t.stop()就行拉!
編程語言

using UnityEngine;
using System.Collections;

public class CoolTime : MonoBehaviour {
    // Use this for initialization
    private int counter = 15;
    private System.Timers.Timer timer = new System.Timers.Timer(1000);
    
    void Start () {
        timer.Elapsed += new System.Timers.ElapsedEventHandler (onTimerHandler);
        timer.Start ();
    }

    void Update () {

    }

    void OnGUI(){
        GUILayout.Label(counter.ToString());        
    }

    void onTimerHandler(object source, System.Timers.ElapsedEventArgs args){
        counter --;
    }

}


//********************************//
using System.Timers;

private bool _isHasStartGame = false;
private System.Timers.Timer _timer;

private void OnPrepareGame(JsonObject _object){
  
_timer = new System.Timers.Timer(10000);
  _timer.Elapsed += new ElapsedEventHandler(DoStartGame);
  _timer.AutoReset = true;
  _timer.Enable = true;
  _timer.Start();
}private void DoStartGame(){  if (_isHasStartGame == false) {      } else {    _timer.Stop();  }}private void OnStartGame(){  _isHasStartGame = true;}
相關文章
相關標籤/搜索