【 unity3d 】Invoke的使用方法

前言

Invoke() 是unity内置的一个方法
没有重载,只有两个参数,意思是延时方法,在多少时间后调用一个方法
第一个参数是 字符串格式的方法名称,第二个参数以秒为单位的延时时间

public extern void Invoke (string methodName, float time);

Invoke方法的测试

表示3秒后调用fun方法

public class InvokeTest : MonoBehaviour {

    void Start(){
        Invoke ("fun", 3);
    }
    private void fun(){
        Debug.Log ("invokeTest");
    }

}

扩展

  • InvokeRepeating()方法
    表示过2秒后调用该方法,之后每隔4秒钟再次执行该方法
public class InvokeTest : MonoBehaviour {

    void Start(){
        InvokeRepeating ("fun", 2, 4);
    }
    private void fun(){
        Debug.Log ("invokeTest");
    }

}

注意cancel Invoke 中的第一个是小写的L ,第二一个是大写的i

  • CancelInvoke()方法
    停止当前脚本中所有的Invoke()

  • CancelInvoke(“funxxx”)
    停止当前脚本中的某个方法

  • IsInvoking();
    判断是否有Invoke在执行

注意

  1. Invoke 不能传递参数
  2. 应该在脚本周期函数中调用
  3. 会受到Time.timeScale的影响

应用

  • 当我们不想在Update函数里频繁调用方法,则可以使用InvokeRepeating()方法代替

  • 在游戏需要刷怪的时候可以使用Invoke这些方法

猜你喜欢

转载自blog.csdn.net/liaoshengg/article/details/80983080