Struct AsyncOperationHandle<TObject>
Handle for internal operations. This allows for reference counting and checking for valid references.
Namespace: UnityEngine.ResourceManagement.AsyncOperations
Syntax
public struct AsyncOperationHandle<TObject> : IEnumerator, IEquatable<AsyncOperationHandle<TObject>>
Type Parameters
| Name | Description |
|---|---|
| TObject | The object type of the underlying operation. |
Properties
DebugName
Debug name of the operation.
Declaration
public string DebugName { get; }
Property Value
| Type | Description |
|---|---|
| String |
IsDone
True if the operation is complete.
Declaration
public bool IsDone { get; }
Property Value
| Type | Description |
|---|---|
| Boolean |
OperationException
The exception for a failed operation. This will be null unless Status is failed.
Declaration
public Exception OperationException { get; }
Property Value
| Type | Description |
|---|---|
| Exception |
PercentComplete
The progress of the internal operation. This is evenly weighted between all sub-operations. For example, a LoadAssetAsync call could potentially be chained with InitializeAsync and have multiple dependent operations that download and load content. In that scenario, PercentComplete would reflect how far the overal operation was, and would not accurately represent just percent downloaded or percent loaded into memory. For accurate download percentages, use GetDownloadStatus().
Declaration
public float PercentComplete { get; }
Property Value
| Type | Description |
|---|---|
| Single |
Result
The result object of the operations.
Declaration
public TObject Result { get; }
Property Value
| Type | Description |
|---|---|
| TObject |
Status
The status of the internal operation.
Declaration
public AsyncOperationStatus Status { get; }
Property Value
| Type | Description |
|---|---|
| AsyncOperationStatus |
Task
Return a Task object to wait on when using async await.
Declaration
public System.Threading.Tasks.Task<TObject> Task { get; }
Property Value
| Type | Description |
|---|---|
| System.Threading.Tasks.Task<TObject> |
Methods
Equals(AsyncOperationHandle<TObject>)
Provide equality for this struct.
Declaration
public bool Equals(AsyncOperationHandle<TObject> other)
Parameters
| Type | Name | Description |
|---|---|---|
| AsyncOperationHandle<TObject> | other | The operation to compare to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the the operation handles reference the same AsyncOperation and the version is the same. |
GetDownloadStatus()
Return the current download status for this operation and its dependencies.
Declaration
public DownloadStatus GetDownloadStatus()
Returns
| Type | Description |
|---|---|
| DownloadStatus | The download status. |
GetHashCode()
Get hash code of this struct.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 |
IsValid()
Check if the handle references an internal operation.
Declaration
public bool IsValid()
Returns
| Type | Description |
|---|---|
| Boolean | True if valid. |
WaitForCompletion()
Synchronously complete the async operation.
Declaration
public TObject WaitForCompletion()
Returns
| Type | Description |
|---|---|
| TObject | The result of the operation or null. |
Events
Completed
Completion event for the internal operation. If this is assigned on a completed operation, the callback is deferred until the LateUpdate of the current frame.
Declaration
public event Action<AsyncOperationHandle<TObject>> Completed
Event Type
| Type | Description |
|---|---|
| Action<AsyncOperationHandle<TObject>> |
CompletedTypeless
Completion event for non-typed callback handlers. If this is assigned on a completed operation, the callback is deferred until the LateUpdate of the current frame.
Declaration
public event Action<AsyncOperationHandle> CompletedTypeless
Event Type
| Type | Description |
|---|---|
| Action<AsyncOperationHandle> |
Destroyed
Event for handling the destruction of the operation.
Declaration
public event Action<AsyncOperationHandle> Destroyed
Event Type
| Type | Description |
|---|---|
| Action<AsyncOperationHandle> |
Operators
Implicit(AsyncOperationHandle<TObject> to AsyncOperationHandle)
Conversion from typed to non typed handles. This does not increment the reference count. To convert from non-typed back, use AsyncOperationHandle.Convert<T>()
Declaration
public static implicit operator AsyncOperationHandle(AsyncOperationHandle<TObject> obj)
Parameters
| Type | Name | Description |
|---|---|---|
| AsyncOperationHandle<TObject> | obj | The typed handle to convert. |
Returns
| Type | Description |
|---|---|
| AsyncOperationHandle | Returns the converted operation handle. |