



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第unity實現延遲回調工具一個實用的計時器,可以計時延遲調用和延遲重復次數調用。
可以自己封裝成單例模式掛在GameObject上使用,或者在另一個behavior的Update里執行這個類的OnUpdate()方法再使用。
為了更加安全的使用,建議在銷毀MonoBehaviour時清理一下對應的所有計時器。
或者調用時可選擇傳入回調所在的MonoBehaviour,這樣就可以自動清理了。
usingSystem.Collections;
usingSystem;
usingSystem.Collections.Generic;
usingUnityEngine;
publicstaticclassDelayCall
privatestaticListCallTimeObjcalltimes=newListCallTimeObj
privatestaticDictionaryint,CallObjcallsort=newDictionaryint,CallObj
privatestaticintcountid=0;
///summary
///生成id
////summary
///returnsThenewidentifier./returns
///paramname="call"Call./param
privatestaticintgetNewId(CallObjcall)
countid++;
if(countid=int.MaxValue)
countid=1;
while(callsort.ContainsKey(countid))countid++;
call.callid=countid;
callsort.Add(countid,call);
returncountid;
publicstaticvoidClearAll()
calltimes.Clear();
callsort.Clear();
///summary
///刪除延遲執行.
////summary
///paramname='call'
///Call.
////param
publicstaticvoidremove(intcallid)
if(callid0callsort.ContainsKey(callid))
CallObjcall=callsort[callid];
callsort.Remove(callid);
if(call!=null)
calltimes.Remove((CallTimeObj)call);
publicstaticintAddTime(floatdelayTime,objectarg,intrepeat=1,Actionobjectcall)
varcallobj=newCallTimeObj();
callobj.argsCall=call;
callobj.arg=arg;
callobj.repeat=repeat;
callobj.time=Time.realtimeSinceStartup+delayTime;
callobj.delayTime=delayTime;
if(repeat==0)
callobj.isloop=true;
calltimes.Add(callobj);
getNewId(callobj);
returncallobj.callid;
///summary
///添加延遲執行
////summary
///paramname="call"回調方法/param
///paramname="delayTime"延遲時間/param
///paramname="repeat"重復回調次數/param
///paramname="mn"承載回掉函數的實例是否存在的判斷/param
///paramname="isUnique"是否是唯一的方法/param
///paramname="isReplace"如果重復是否覆蓋/param
///returns/returns
publicstaticintAddTime(floatdelayTime,intrepeat=1,MonoBehaviourmn=null,boolisUnique=false,boolisReplace=false,Actioncall)
if(isUnique)
for(inti=0;icalltimes.Count;i++)
CallTimeObjcall2=calltimes[i];
if(call2.mn==mncall2.call==call)
if(isReplace)
call2.time=Time.realtimeSinceStartup+delayTime;
returncall2.callid;
varcallobj=newCallTimeObj();
callobj.call=call;
callobj.isMN=(mn!=null);
callobj.mn=mn;
callobj.repeat=repeat;
callobj.time=Time.realtimeSinceStartup+delayTime;
callobj.delay
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建南平武夷文化旅游投資開發有限公司見習生、實習生考試筆試試題(含答案)
- 【南陽】2025年河南南陽市南召縣衛生系統事業單位(總醫院)招聘43人筆試歷年典型考題及考點剖析附帶答案詳解
- 【遼源】2025年吉林遼源市拉拉河社會福利院招聘工作人員4人筆試歷年典型考題及考點剖析附帶答案詳解
- 文庫發布:班會課件
- 文庫發布:急診科課件
- 房間課件內容
- 敬畏的課件教學課件
- 敬畏主題班會課件
- 散步課件介紹
- 散步的說課課件
- GB/T 5470-2008塑料沖擊法脆化溫度的測定
- GB/T 40998-2021變性淀粉中羥丙基含量的測定分光光度法
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 31848-2015汽車貼膜玻璃貼膜要求
- GB/T 18884.2-2015家用廚房設備第2部分:通用技術要求
- GB/T 12239-2008工業閥門金屬隔膜閥
- 行政法培訓講義課件
- DB32T 4174-2021 城市居住區和單位綠化標準
- 基本原理與性能特點多自由度電磁軸承課件
- 北京輸變電工程標準工藝應用圖冊(圖文并茂)
- 三相負荷(380V)及單相(220V)最大供電距離計算表及電壓降計算表
評論
0/150
提交評論