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方法: 執行並沒有被掛起,相當於設置完被調用函數的執行時間后即時向下執行。應用到每隔一段時間執行某個函數很方便。
協程:開啟一個新的序列(不是線程)並掛起,等待中斷指令結束。當需要掛起當前執行時使用。