延迟与异步的基本概念
| 概念 |
说明 |
| 延迟 (Delay) |
指在执行一段逻辑后,等待指定时间再执行后续逻辑。例如:2 秒后播放特效。 |
| 异步 (Asynchronous) |
指在不阻塞主线程的情况下执行任务(例如加载资源、网络请求),任务完成后再继续执行后续逻辑。 |
| 协程 (Coroutine) |
Unity 特有的“伪异步”机制。它能让逻辑在多帧之间暂停并恢复,而不会阻塞主线程。 |
| Invoke / InvokeRepeating |
Unity 提供的简单延迟调用方式,适用于延迟执行或定时循环调用函数。 |
协程(Coroutine)
1. 基本语法
IEnumerator MyCoroutine()
{
Debug.Log("Start");
yield return new WaitForSeconds(2f);
Debug.Log("After 2 seconds");
}
调用方式:
StartCoroutine(MyCoroutine());
2. 常用 yield 类型
yield 返回对象 |
说明 |
null |
下一帧继续执行 |
new WaitForSeconds(float) |
等待指定秒数(受 Time.timeScale 影响) |
new WaitForSecondsRealtime(float) |
等待真实时间(不受 timeScale 影响) |
new WaitUntil(Func<bool>) |
等待条件成立 |
new WaitWhile(Func<bool>) |
等待条件为真时持续挂起 |