Unity封装延时调用定时器
本文实例为大家分享了Unity封装延时调用定时器的具体代码,供大家参考,具体内容如下
封装一个延时调用定时器类
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
usingUnityEngine.Events;
publicclassWaitTimeManager
{
privatestaticTaskBehaviourm_Task;
staticWaitTimeManager()
{
GameObjectgo=newGameObject("#WaitTimeManager#");
GameObject.DontDestroyOnLoad(go);
m_Task=go.AddComponent();
}
//等待
staticpublicCoroutineWaitTime(floattime,UnityActioncallback)
{
returnm_Task.StartCoroutine(Coroutine(time,callback));
}
//取消等待
staticpublicvoidCancelWait(refCoroutinecoroutine)
{
if(coroutine!=null){
m_Task.StopCoroutine(coroutine);
coroutine=null;
}
}
staticIEnumeratorCoroutine(floattime,UnityActioncallback){
yieldreturnnewWaitForSeconds(time);
if(callback!=null){
callback();
}
}
//内部类
classTaskBehaviour:MonoBehaviour{}
}
测试
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
publicclassScript_04_15:MonoBehaviour{
voidStart(){
//开启定时器
Coroutinecoroutine=WaitTimeManager.WaitTime(5f,delegate{
Debug.LogFormat("等待5秒后回调");
});
//等待过程中取消它
//WaitTimeManager.CancelWait(refcoroutine);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。