Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


WaitWhile

Initializes a yield instruction with a given delegate to be evaluated.
Read time 1 minuteLast updated 4 days ago

Definition

  • Type: Constructor
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule

WaitWhile(Func<bool>)

Initializes a yield instruction with a given delegate to be evaluated.
public WaitWhile(Func<bool> predicate)

Parameters

predicate

The supplied delegate will be evaluated each frame after MonoBehaviour.Update() and before MonoBehaviour.LateUpdate() until delegate returns false.

WaitWhile(Func<bool>, TimeSpan, Action, WaitTimeoutMode)

Initializes a yield instruction with a given delegate to be evaluated.
public WaitWhile(Func<bool> predicate, TimeSpan timeout, Action onTimeout, WaitTimeoutMode timeoutMode = WaitTimeoutMode.Realtime)

Parameters

predicate

The supplied delegate will be evaluated each frame after MonoBehaviour.Update() and before MonoBehaviour.LateUpdate() until delegate returns false.

timeout

Maximum time to wait after creation of the instance for the predicate to return false.

onTimeout

The action to perform when the timeout is reached. Only performed if the predicate fails to return false before the maximum time specified.

timeoutMode

Mode in which to measure time to determine timeout. Real time by default. Can be set to in-game time, which is scaled according to the value of Time.timeScale.

Examples

using UnityEngine;using System;using System.Collections;public class WaitWhileExample : MonoBehaviour{ public bool buttonPressed; void Start() { StartCoroutine(Example()); } IEnumerator Example() { Debug.Log("Waiting for button to be pressed..."); yield return new WaitWhile(() => !buttonPressed, TimeSpan.FromSeconds(3), () => Debug.Log("button was not pressed in time!")); }}