Suspends the coroutine execution until the supplied delegate evaluates to true
.
WaitUntil can only be used with a yield
statement in coroutines.
Supplied delegate will be executed each frame after script MonoBehaviour.Update and before MonoBehaviour.LateUpdate. When the delegate finally evaluates to true
, the coroutine will proceed with its execution.
See Also: AsyncOperation, WaitForEndOfFrame, WaitForFixedUpdate, WaitForSeconds, WaitForSecondsRealtime, WaitWhile.
using UnityEngine; using System.Collections;
public class WaitUntilExample : MonoBehaviour { public int frame;
void Start() { StartCoroutine(Example()); }
IEnumerator Example() { Debug.Log("Waiting for princess to be rescued..."); yield return new WaitUntil(() => frame >= 10); Debug.Log("Princess was rescued!"); }
void Update() { if (frame <= 10) { Debug.Log("Frame: " + frame); frame++; } } }
WaitUntil | Initializes a yield instruction with a given delegate to be evaluated. |
keepWaiting | Indicates if coroutine should be kept suspended. |