From 32c5f6916a5c20e2300d8f0a606614d4496280bc Mon Sep 17 00:00:00 2001 From: Brice Date: Wed, 27 Feb 2019 16:00:52 +0100 Subject: [PATCH] Added GetAwaiter extension for UnityEngine.Coroutine objects --- .../Source/IEnumeratorAwaitExtensions.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/UnityProject/Assets/Plugins/AsyncAwaitUtil/Source/IEnumeratorAwaitExtensions.cs b/UnityProject/Assets/Plugins/AsyncAwaitUtil/Source/IEnumeratorAwaitExtensions.cs index 1c5273f..ee6a578 100644 --- a/UnityProject/Assets/Plugins/AsyncAwaitUtil/Source/IEnumeratorAwaitExtensions.cs +++ b/UnityProject/Assets/Plugins/AsyncAwaitUtil/Source/IEnumeratorAwaitExtensions.cs @@ -100,6 +100,14 @@ public static SimpleCoroutineAwaiter GetAwaiter(this IEnumerator corouti new CoroutineWrapper(coroutine, awaiter).Run())); return awaiter; } + + public static SimpleCoroutineAwaiter GetAwaiter(this Coroutine coroutine) + { + var awaiter = new SimpleCoroutineAwaiter(); + RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( + new CoroutineWrapper(InstructionWrappers.WrapCoroutine(coroutine), awaiter).Run())); + return awaiter; + } static SimpleCoroutineAwaiter GetAwaiterReturnVoid(object instruction) { @@ -395,5 +403,10 @@ public static IEnumerator ResourceRequest( yield return instruction; awaiter.Complete(instruction.asset, null); } + + internal static IEnumerator WrapCoroutine(Coroutine coroutine) + { + yield return coroutine; + } } }