public static SimpleCoroutineAwaiter <object> GetAwaiter(this IEnumerator coroutine) { var awaiter = new SimpleCoroutineAwaiter <object>(); var simple_routine = new CoroutineWrapper <object>(coroutine, awaiter).Run(); RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(simple_routine, nameof(GetAwaiter) + "(object)")); return(awaiter); }
public static SimpleCoroutineAwaiter <T> GetAwaiter <T>(this IEnumerator <T> coroutine) { var awaiter = new SimpleCoroutineAwaiter <T>(); var simple_routine = new CoroutineWrapper <T>(coroutine, awaiter).Run(); RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(simple_routine, nameof(GetAwaiter) + "<" + typeof(T).Name + ">")); return(awaiter); }
public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this AssetBundleRequest instruction) { var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>(); var asset_bundle_request = InstructionWrappers.AssetBundleRequest(awaiter, instruction); RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(asset_bundle_request, nameof(AssetBundleRequest))); return(awaiter); }
public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this ResourceRequest instruction) { var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>(); var resource_request = InstructionWrappers.ResourceRequest(awaiter, instruction); RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(resource_request, nameof(GetAwaiter) + "(UnityObject)")); return(awaiter); }
static SimpleCoroutineAwaiter <T> GetAwaiterReturnSelf <T>(T instruction) { var awaiter = new SimpleCoroutineAwaiter <T>(); var return_self = InstructionWrappers.ReturnSelf(awaiter, instruction); RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(return_self)); return(awaiter); }
static SimpleCoroutineAwaiter GetAwaiterReturnVoid(object instruction) { var awaiter = new SimpleCoroutineAwaiter(); var return_void = InstructionWrappers.ReturnVoid(awaiter, instruction); RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(return_void)); return(awaiter); }