Unity中Invoke和InvokeRepeating的使用


Invoke:

Invoke()是Unity中內置的一個回調機制。

void Invoke(string methodName,float time)  : 意思是在等待time之后,再調用方法methodName方法。

 實例:延時2秒后執行Running方法。

注:

1)、Invoke() : 不能接受有參數的方法。

2)、Invoke():應該在腳本的生命周期里面(Start,Updata,OnGUI,LateUpdate)中被調用;

3)、Invoke() 會受到Time.ScaleTime的影響。

InvokeRepeating:

void Invoke(string methodName,float time,float delayTime)  : 意思是在等待time之后,再調用方法methodName方法,並且每隔delayTime再去調用methodName方法。

實例:2秒后調用Running方法,然后每隔3秒再去執行Running方法。

當使用了InvokeRepeating后會一直執行,這時到達了條件后你就會想要停止掉這個方法。

CancelInvoke()  :  停止當前腳本中所有的Invoke和InvokeRepeating方法。

CancelInvoke("MethodName") : 停止當前腳本某個Invoke和InvokeRepeating方法。

Invoke和協程的比較:

Invoke方法: 執行並沒有被掛起,相當於設置完被調用函數的執行時間后即時向下執行。應用到每隔一段時間執行某個函數很方便。

協程:開啟一個新的序列(不是線程)並掛起,等待中斷指令結束。當需要掛起當前執行時使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM