Awaitable

class in UnityEngine

/

Implemented in:UnityEngine.CoreModule

Description

Custom Unity type that can be awaited and used as an async return type in the C# asynchronous programming model.

Awaitable is usually a preferable alternative to .NET Task for asynchronous code in Unity. It's important, however, to know the differences between the two. Most notably, instances of the `Awaitable` class are pooled and therefore not safe to await multiple times in the same method.

For more information, refer to Asynchronous programming with the Awaitable class in the Manual.

private async Awaitable DoSomethingAsync()
{
   await LoadSceneAsync("SomeScene");
   await SomeApiReturningATask();
   await Awaitable.NextFrameAsync();
   // <...>
}

Properties

IsCompletedIndicates if the awaitable has run to completion.

Public Methods

CancelCancels the awaitable. If the awaitable is being awaited, the awaiter receives a System.OperationCanceledException.

Static Methods

BackgroundThreadAsyncResumes execution on a ThreadPool background thread. Completes immediately when called from a background thread.
EndOfFrameAsyncResumes execution after all Unity subsystems have run for the current frame.
FixedUpdateAsyncResumes execution on the next fixed update frame.
FromAsyncOperationCreates an Awaitable from an existing AsyncOperation object.
MainThreadAsyncResumes execution on the Unity main thread. Completes immediately when called from the main thread.
NextFrameAsyncResumes execution on the next frame.
WaitForSecondsAsyncResumes execution after the specified number of seconds.

Did you find this page useful? Please give it a rating: