纳金网
标题:
在Unity中使用Timer类来计时
[打印本页]
作者:
may
时间:
2019-7-29 23:39
标题:
在Unity中使用Timer类来计时
using System.Timers;
using UnityEngine;
public class test : MonoBehaviour
{
private float fltTime = 0;
System.Timers.Timer t;
void Start()
{
//定时器
t = new Timer(1000);//实例化Timer类,设置间隔时间为3000毫秒
t.Elapsed += new ElapsedEventHandler(Timing);//到达时间的时候执行事件
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true)
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件
}
void Timing(object sender, ElapsedEventArgs e)
{
fltTime++;
Debug.Log(fltTime);
}
private void OnApplicationQuit()
{
t.Close();
}
}
复制代码
來自:实践者
作者:
745951224
时间:
2019-7-30 10:24
先指出个注释错误:new Timer(1000) 指的是1000毫秒间隔,而不是3000毫秒
另外Timer类说明详情可见微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.timers.timer.site?view=netframework-4.8#System_Timers_Timer_Site
然后说下用途方面吧
1、首先当然是在Unity的应用上,System.Timers.Timer属于线程安全的多线程类,简单点说就是它无法去执行Unity API。Unity API只能运行在主线程上。当然,Debug.Log啥的就不说了。
2、因为不是Unity的原生API,所以在平台部署上可能会费点劲,需要注意
呐,建议还是直接使用Unity的协程,虽然时间上会有误差,但是其实不大。
欢迎光临 纳金网 (http://wwww.narkii.com/club/)
Powered by Discuz! X2.5