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); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。