using System.Threading.Tasks; using UnityEngine; public static class AsyncOperationExtensions { /// <summary> /// Extension method that converts an AsyncOperation into a Task. /// </summary> /// <param name="asyncOperation">The AsyncOperation to convert.</param> /// <returns>A Task that represents the completion of the AsyncOperation.</returns> public static Task AsTask(this AsyncOperation asyncOperation) { var tcs = new TaskCompletionSource<bool>(); asyncOperation.completed += _ => tcs.SetResult(true); return tcs.Task; } }