unity Invoke语句用法

Invoke语句用于延时调用某个方法,它有两个参数

 void Start()
    {
        Invoke ("SpawnObject", 2);
    }
    
    void SpawnObject()
    {
        Instantiate(target, new Vector3(0, 2, 0), Quaternion.identity);
    }

I上述语句表示在程序执行到该语句两秒后执行SpawnObject方法

这里需要注意Invoke调用的方法必须是void类型且必须无参。

如果你希望重复执行SpawnObject方法,可以使用InvokeRepeating。

 void Start()
    {
        InvokeRepeating("SpawnObject", 2, 1);
    }
    
    void SpawnObject()
    {
        float x = Random.Range(-2.0f, 2.0f);
        float z = Random.Range(-2.0f, 2.0f);
        Instantiate(target, new Vector3(x, 2, z), Quaternion.identity);
    }

        这个语句有三个参数,前两个参数效果与上文提到的一样,最后一个参数表示在第一次执行SpawnObject方法后,每过一秒执行一次SpawnObject方法,即第一次执行之后每次方法执行的时间间隔。

        如果你想要停止某个InvokeRepeating。你可以使用CancelInvoke。

它有传参与不传参两种形式

当不传参,即CancelInvoke();形式时表示停止该脚本中所有的Invoke。

你也可以选择参数,即传递某个方法的名称,如CancelInvoke("SpawnObject");

表示停止调用SpawnObject这个方法的Invoke,只是停止某个特定的Invoke。

上一篇:【Unity随手记】获取围绕自身坐标轴旋转一定角度后的Rotation值


下一篇:《向量》Unity 中自己实现Vector3.Angle函数