【Unity3D】Invoke,InvokeRepeating ,Coroutine 延迟调用,周期性调用

时间:2023-03-09 03:10:38
【Unity3D】Invoke,InvokeRepeating ,Coroutine 延迟调用,周期性调用

Invoke和InvokeRepeating方法,可以实现延迟调用,和周期调用

第一个是执行一次,第二个是重复执行

void Invoke(string methodName, float time);

第一个参数是方法名(注意是字符串形式),并不是更方便的委托。第二个是延时多少秒。只执行一次。

void InvokeRepeating(string methodName, float time, float repeatRate);

InvokeRepeating第二个参数是延时多少秒后开始,第三个参数是每次执行间隔的秒数。

这两个函数的问题是不能传递参数

如果想要传递参数,并且实现延迟调用,可以考虑采用Coroutine

StartCoroutine(Fun(1,“2”,3.0f,4.0f));

IEnumerator Fun(int arg1, string arg2 , float arg3 , float delaySecond )

{

yield return new WaitForSeconds(delaySecond);

……

}