From ed617a04a6014c329e80af892f297d20b6505e5e Mon Sep 17 00:00:00 2001 From: neuecc Date: Mon, 24 Oct 2022 21:56:03 +0900 Subject: [PATCH] if UNITY_2022_2_OR_NEWER, use destroyCancellationToken --- .../Runtime/Triggers/AsyncTriggerExtensions.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/Triggers/AsyncTriggerExtensions.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/Triggers/AsyncTriggerExtensions.cs index 49e7f0b..bad5a04 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/Triggers/AsyncTriggerExtensions.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/Triggers/AsyncTriggerExtensions.cs @@ -8,6 +8,16 @@ namespace Cysharp.Threading.Tasks { public static class UniTaskCancellationExtensions { +#if UNITY_2022_2_OR_NEWER + + /// This CancellationToken is canceled when the MonoBehaviour will be destroyed. + public static CancellationToken GetCancellationTokenOnDestroy(this MonoBehaviour monoBehaviour) + { + return monoBehaviour.destroyCancellationToken; + } + +#endif + /// This CancellationToken is canceled when the MonoBehaviour will be destroyed. public static CancellationToken GetCancellationTokenOnDestroy(this GameObject gameObject) { @@ -17,6 +27,13 @@ namespace Cysharp.Threading.Tasks /// This CancellationToken is canceled when the MonoBehaviour will be destroyed. public static CancellationToken GetCancellationTokenOnDestroy(this Component component) { +#if UNITY_2022_2_OR_NEWER + if (component is MonoBehaviour mb) + { + return mb.destroyCancellationToken; + } +#endif + return component.GetAsyncDestroyTrigger().CancellationToken; } }