unity invoke
时间: 2023-06-21 13:15:10 浏览: 99
Unity中的Invoke方法可以让我们在指定的时间后执行一个方法。具体用法如下:
1. Invoke(string methodName, float time):在指定的时间后调用指定的方法。
```
void Start()
{
Invoke("DoSomething", 2f);
}
void DoSomething()
{
Debug.Log("2 seconds have passed.");
}
```
2. InvokeRepeating(string methodName, float time, float repeatRate):在指定的时间后开始重复调用指定的方法,每隔指定的时间再次调用该方法。
```
void Start()
{
InvokeRepeating("DoSomething", 2f, 3f);
}
void DoSomething()
{
Debug.Log("Do something every 3 seconds.");
}
```
3. CancelInvoke():取消Invoke方法的调用。
```
void Start()
{
Invoke("DoSomething", 2f);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
CancelInvoke();
}
}
void DoSomething()
{
Debug.Log("2 seconds have passed.");
}
```
注意事项:
- Invoke方法只能在MonoBehaviour派生类中使用,且被调用的方法也必须在该类中声明。
- 如果需要传递参数给被调用的方法,需要使用lambda表达式或者委托。
- 如果需要在协程中使用Invoke方法,需要使用StartCoroutine方法来代替。
阅读全文