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;}