From c65f9c3497a817b36e0afd70042e671482e2534f Mon Sep 17 00:00:00 2001 From: hadashiA Date: Thu, 7 Sep 2023 17:36:06 +0900 Subject: [PATCH] Add EndOfFrame implementation using UnityEngine.Awaitable --- .../Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs index ccd688b..fadd63c 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs @@ -75,6 +75,12 @@ namespace Cysharp.Threading.Tasks return new UniTask(NextFramePromise.Create(timing, cancellationToken, out var token), token); } +#if UNITY_2023_1_OR_NEWER + public static async UniTask WaitForEndOfFrame(CancellationToken cancellationToken = default) + { + await Awaitable.EndOfFrameAsync(cancellationToken); + } +#else [Obsolete("Use WaitForEndOfFrame(MonoBehaviour) instead or UniTask.Yield(PlayerLoopTiming.LastPostLateUpdate). Equivalent for coroutine's WaitForEndOfFrame requires MonoBehaviour(runner of Coroutine).")] public static YieldAwaitable WaitForEndOfFrame() { @@ -86,6 +92,7 @@ namespace Cysharp.Threading.Tasks { return UniTask.Yield(PlayerLoopTiming.LastPostLateUpdate, cancellationToken); } +#endif public static UniTask WaitForEndOfFrame(MonoBehaviour coroutineRunner, CancellationToken cancellationToken = default) {