使用已缩放时间暂停协程执行给定的秒数。
实际暂停时间等于给定时间除以 Time.timeScale。如果您希望使用未缩放时间进行等待,请参见 WaitForSecondsRealtime。 WaitForSeconds 只能在协程中与 yield
语句结合使用。
有几个因素可能意味着实际等待时间与指定的时间不完全相等
1. 在当前帧的末尾
开始等待。如果您在长帧中启动带有持续时间“t”的 WaitForSeconds(例如,其中有一个阻止主线程的长操作,例如某些同步加载),协程将在帧结束后的“t”秒返回,而不会在调用后的“t”秒返回。
2. 允许协程在“t”秒过去后的第一帧恢复,而不是在“t”秒过去后完全恢复。
using UnityEngine; using System.Collections;
public class WaitForSecondsExample : MonoBehaviour { void Start() { //Start the coroutine we define below named ExampleCoroutine. StartCoroutine(ExampleCoroutine()); }
IEnumerator ExampleCoroutine() { //Print the time of when the function is first called. Debug.Log("Started Coroutine at timestamp : " + Time.time);
//yield on a new YieldInstruction that waits for 5 seconds. yield return new WaitForSeconds(5);
//After we have waited 5 seconds print the time again. Debug.Log("Finished Coroutine at timestamp : " + Time.time); } }
其他资源: MonoBehaviour.StartCoroutine、 AsyncOperation、 WaitForEndOfFrame、 WaitForFixedUpdate、 WaitForSecondsRealtime、 WaitUntil、 WaitWhile。
WaitForSeconds | 使用已缩放时间暂停协程执行给定的秒数。 |