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;}
相关文章
相关标签/搜索