#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member using System.Threading; using UnityEngine; #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT using UnityEngine.EventSystems; #endif namespace Cysharp.Threading.Tasks.Triggers { #region FixedUpdate public interface IAsyncFixedUpdateHandler { UniTask FixedUpdateAsync(); } public partial class AsyncTriggerHandler : IAsyncFixedUpdateHandler { UniTask IAsyncFixedUpdateHandler.FixedUpdateAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncFixedUpdateTrigger GetAsyncFixedUpdateTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncFixedUpdateTrigger GetAsyncFixedUpdateTrigger(this Component component) { return component.gameObject.GetAsyncFixedUpdateTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncFixedUpdateTrigger : AsyncTriggerBase { void FixedUpdate() { RaiseEvent(AsyncUnit.Default); } public IAsyncFixedUpdateHandler GetFixedUpdateAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncFixedUpdateHandler GetFixedUpdateAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask FixedUpdateAsync() { return ((IAsyncFixedUpdateHandler)new AsyncTriggerHandler(this, true)).FixedUpdateAsync(); } public UniTask FixedUpdateAsync(CancellationToken cancellationToken) { return ((IAsyncFixedUpdateHandler)new AsyncTriggerHandler(this, cancellationToken, true)).FixedUpdateAsync(); } } #endregion #region LateUpdate public interface IAsyncLateUpdateHandler { UniTask LateUpdateAsync(); } public partial class AsyncTriggerHandler : IAsyncLateUpdateHandler { UniTask IAsyncLateUpdateHandler.LateUpdateAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncLateUpdateTrigger GetAsyncLateUpdateTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncLateUpdateTrigger GetAsyncLateUpdateTrigger(this Component component) { return component.gameObject.GetAsyncLateUpdateTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncLateUpdateTrigger : AsyncTriggerBase { void LateUpdate() { RaiseEvent(AsyncUnit.Default); } public IAsyncLateUpdateHandler GetLateUpdateAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncLateUpdateHandler GetLateUpdateAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask LateUpdateAsync() { return ((IAsyncLateUpdateHandler)new AsyncTriggerHandler(this, true)).LateUpdateAsync(); } public UniTask LateUpdateAsync(CancellationToken cancellationToken) { return ((IAsyncLateUpdateHandler)new AsyncTriggerHandler(this, cancellationToken, true)).LateUpdateAsync(); } } #endregion #region AnimatorIK public interface IAsyncOnAnimatorIKHandler { UniTask OnAnimatorIKAsync(); } public partial class AsyncTriggerHandler : IAsyncOnAnimatorIKHandler { UniTask IAsyncOnAnimatorIKHandler.OnAnimatorIKAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncAnimatorIKTrigger GetAsyncAnimatorIKTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncAnimatorIKTrigger GetAsyncAnimatorIKTrigger(this Component component) { return component.gameObject.GetAsyncAnimatorIKTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncAnimatorIKTrigger : AsyncTriggerBase { void OnAnimatorIK(int layerIndex) { RaiseEvent((layerIndex)); } public IAsyncOnAnimatorIKHandler GetOnAnimatorIKAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnAnimatorIKHandler GetOnAnimatorIKAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnAnimatorIKAsync() { return ((IAsyncOnAnimatorIKHandler)new AsyncTriggerHandler(this, true)).OnAnimatorIKAsync(); } public UniTask OnAnimatorIKAsync(CancellationToken cancellationToken) { return ((IAsyncOnAnimatorIKHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnAnimatorIKAsync(); } } #endregion #region AnimatorMove public interface IAsyncOnAnimatorMoveHandler { UniTask OnAnimatorMoveAsync(); } public partial class AsyncTriggerHandler : IAsyncOnAnimatorMoveHandler { UniTask IAsyncOnAnimatorMoveHandler.OnAnimatorMoveAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncAnimatorMoveTrigger GetAsyncAnimatorMoveTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncAnimatorMoveTrigger GetAsyncAnimatorMoveTrigger(this Component component) { return component.gameObject.GetAsyncAnimatorMoveTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncAnimatorMoveTrigger : AsyncTriggerBase { void OnAnimatorMove() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnAnimatorMoveHandler GetOnAnimatorMoveAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnAnimatorMoveHandler GetOnAnimatorMoveAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnAnimatorMoveAsync() { return ((IAsyncOnAnimatorMoveHandler)new AsyncTriggerHandler(this, true)).OnAnimatorMoveAsync(); } public UniTask OnAnimatorMoveAsync(CancellationToken cancellationToken) { return ((IAsyncOnAnimatorMoveHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnAnimatorMoveAsync(); } } #endregion #region ApplicationFocus public interface IAsyncOnApplicationFocusHandler { UniTask OnApplicationFocusAsync(); } public partial class AsyncTriggerHandler : IAsyncOnApplicationFocusHandler { UniTask IAsyncOnApplicationFocusHandler.OnApplicationFocusAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncApplicationFocusTrigger GetAsyncApplicationFocusTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncApplicationFocusTrigger GetAsyncApplicationFocusTrigger(this Component component) { return component.gameObject.GetAsyncApplicationFocusTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncApplicationFocusTrigger : AsyncTriggerBase { void OnApplicationFocus(bool hasFocus) { RaiseEvent((hasFocus)); } public IAsyncOnApplicationFocusHandler GetOnApplicationFocusAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnApplicationFocusHandler GetOnApplicationFocusAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnApplicationFocusAsync() { return ((IAsyncOnApplicationFocusHandler)new AsyncTriggerHandler(this, true)).OnApplicationFocusAsync(); } public UniTask OnApplicationFocusAsync(CancellationToken cancellationToken) { return ((IAsyncOnApplicationFocusHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnApplicationFocusAsync(); } } #endregion #region ApplicationPause public interface IAsyncOnApplicationPauseHandler { UniTask OnApplicationPauseAsync(); } public partial class AsyncTriggerHandler : IAsyncOnApplicationPauseHandler { UniTask IAsyncOnApplicationPauseHandler.OnApplicationPauseAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncApplicationPauseTrigger GetAsyncApplicationPauseTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncApplicationPauseTrigger GetAsyncApplicationPauseTrigger(this Component component) { return component.gameObject.GetAsyncApplicationPauseTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncApplicationPauseTrigger : AsyncTriggerBase { void OnApplicationPause(bool pauseStatus) { RaiseEvent((pauseStatus)); } public IAsyncOnApplicationPauseHandler GetOnApplicationPauseAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnApplicationPauseHandler GetOnApplicationPauseAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnApplicationPauseAsync() { return ((IAsyncOnApplicationPauseHandler)new AsyncTriggerHandler(this, true)).OnApplicationPauseAsync(); } public UniTask OnApplicationPauseAsync(CancellationToken cancellationToken) { return ((IAsyncOnApplicationPauseHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnApplicationPauseAsync(); } } #endregion #region ApplicationQuit public interface IAsyncOnApplicationQuitHandler { UniTask OnApplicationQuitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnApplicationQuitHandler { UniTask IAsyncOnApplicationQuitHandler.OnApplicationQuitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncApplicationQuitTrigger GetAsyncApplicationQuitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncApplicationQuitTrigger GetAsyncApplicationQuitTrigger(this Component component) { return component.gameObject.GetAsyncApplicationQuitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncApplicationQuitTrigger : AsyncTriggerBase { void OnApplicationQuit() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnApplicationQuitHandler GetOnApplicationQuitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnApplicationQuitHandler GetOnApplicationQuitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnApplicationQuitAsync() { return ((IAsyncOnApplicationQuitHandler)new AsyncTriggerHandler(this, true)).OnApplicationQuitAsync(); } public UniTask OnApplicationQuitAsync(CancellationToken cancellationToken) { return ((IAsyncOnApplicationQuitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnApplicationQuitAsync(); } } #endregion #region AudioFilterRead public interface IAsyncOnAudioFilterReadHandler { UniTask<(float[] data, int channels)> OnAudioFilterReadAsync(); } public partial class AsyncTriggerHandler : IAsyncOnAudioFilterReadHandler { UniTask<(float[] data, int channels)> IAsyncOnAudioFilterReadHandler.OnAudioFilterReadAsync() { core.Reset(); return new UniTask<(float[] data, int channels)>((IUniTaskSource<(float[] data, int channels)>)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncAudioFilterReadTrigger GetAsyncAudioFilterReadTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncAudioFilterReadTrigger GetAsyncAudioFilterReadTrigger(this Component component) { return component.gameObject.GetAsyncAudioFilterReadTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncAudioFilterReadTrigger : AsyncTriggerBase<(float[] data, int channels)> { void OnAudioFilterRead(float[] data, int channels) { RaiseEvent((data, channels)); } public IAsyncOnAudioFilterReadHandler GetOnAudioFilterReadAsyncHandler() { return new AsyncTriggerHandler<(float[] data, int channels)>(this, false); } public IAsyncOnAudioFilterReadHandler GetOnAudioFilterReadAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler<(float[] data, int channels)>(this, cancellationToken, false); } public UniTask<(float[] data, int channels)> OnAudioFilterReadAsync() { return ((IAsyncOnAudioFilterReadHandler)new AsyncTriggerHandler<(float[] data, int channels)>(this, true)).OnAudioFilterReadAsync(); } public UniTask<(float[] data, int channels)> OnAudioFilterReadAsync(CancellationToken cancellationToken) { return ((IAsyncOnAudioFilterReadHandler)new AsyncTriggerHandler<(float[] data, int channels)>(this, cancellationToken, true)).OnAudioFilterReadAsync(); } } #endregion #region BecameInvisible public interface IAsyncOnBecameInvisibleHandler { UniTask OnBecameInvisibleAsync(); } public partial class AsyncTriggerHandler : IAsyncOnBecameInvisibleHandler { UniTask IAsyncOnBecameInvisibleHandler.OnBecameInvisibleAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncBecameInvisibleTrigger GetAsyncBecameInvisibleTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncBecameInvisibleTrigger GetAsyncBecameInvisibleTrigger(this Component component) { return component.gameObject.GetAsyncBecameInvisibleTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncBecameInvisibleTrigger : AsyncTriggerBase { void OnBecameInvisible() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnBecameInvisibleHandler GetOnBecameInvisibleAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnBecameInvisibleHandler GetOnBecameInvisibleAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnBecameInvisibleAsync() { return ((IAsyncOnBecameInvisibleHandler)new AsyncTriggerHandler(this, true)).OnBecameInvisibleAsync(); } public UniTask OnBecameInvisibleAsync(CancellationToken cancellationToken) { return ((IAsyncOnBecameInvisibleHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnBecameInvisibleAsync(); } } #endregion #region BecameVisible public interface IAsyncOnBecameVisibleHandler { UniTask OnBecameVisibleAsync(); } public partial class AsyncTriggerHandler : IAsyncOnBecameVisibleHandler { UniTask IAsyncOnBecameVisibleHandler.OnBecameVisibleAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncBecameVisibleTrigger GetAsyncBecameVisibleTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncBecameVisibleTrigger GetAsyncBecameVisibleTrigger(this Component component) { return component.gameObject.GetAsyncBecameVisibleTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncBecameVisibleTrigger : AsyncTriggerBase { void OnBecameVisible() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnBecameVisibleHandler GetOnBecameVisibleAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnBecameVisibleHandler GetOnBecameVisibleAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnBecameVisibleAsync() { return ((IAsyncOnBecameVisibleHandler)new AsyncTriggerHandler(this, true)).OnBecameVisibleAsync(); } public UniTask OnBecameVisibleAsync(CancellationToken cancellationToken) { return ((IAsyncOnBecameVisibleHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnBecameVisibleAsync(); } } #endregion #region BeforeTransformParentChanged public interface IAsyncOnBeforeTransformParentChangedHandler { UniTask OnBeforeTransformParentChangedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnBeforeTransformParentChangedHandler { UniTask IAsyncOnBeforeTransformParentChangedHandler.OnBeforeTransformParentChangedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncBeforeTransformParentChangedTrigger GetAsyncBeforeTransformParentChangedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncBeforeTransformParentChangedTrigger GetAsyncBeforeTransformParentChangedTrigger(this Component component) { return component.gameObject.GetAsyncBeforeTransformParentChangedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncBeforeTransformParentChangedTrigger : AsyncTriggerBase { void OnBeforeTransformParentChanged() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnBeforeTransformParentChangedHandler GetOnBeforeTransformParentChangedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnBeforeTransformParentChangedHandler GetOnBeforeTransformParentChangedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnBeforeTransformParentChangedAsync() { return ((IAsyncOnBeforeTransformParentChangedHandler)new AsyncTriggerHandler(this, true)).OnBeforeTransformParentChangedAsync(); } public UniTask OnBeforeTransformParentChangedAsync(CancellationToken cancellationToken) { return ((IAsyncOnBeforeTransformParentChangedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnBeforeTransformParentChangedAsync(); } } #endregion #region OnCanvasGroupChanged public interface IAsyncOnCanvasGroupChangedHandler { UniTask OnCanvasGroupChangedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCanvasGroupChangedHandler { UniTask IAsyncOnCanvasGroupChangedHandler.OnCanvasGroupChangedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncOnCanvasGroupChangedTrigger GetAsyncOnCanvasGroupChangedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncOnCanvasGroupChangedTrigger GetAsyncOnCanvasGroupChangedTrigger(this Component component) { return component.gameObject.GetAsyncOnCanvasGroupChangedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncOnCanvasGroupChangedTrigger : AsyncTriggerBase { void OnCanvasGroupChanged() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnCanvasGroupChangedHandler GetOnCanvasGroupChangedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCanvasGroupChangedHandler GetOnCanvasGroupChangedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCanvasGroupChangedAsync() { return ((IAsyncOnCanvasGroupChangedHandler)new AsyncTriggerHandler(this, true)).OnCanvasGroupChangedAsync(); } public UniTask OnCanvasGroupChangedAsync(CancellationToken cancellationToken) { return ((IAsyncOnCanvasGroupChangedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCanvasGroupChangedAsync(); } } #endregion #region CollisionEnter #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnCollisionEnterHandler { UniTask OnCollisionEnterAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCollisionEnterHandler { UniTask IAsyncOnCollisionEnterHandler.OnCollisionEnterAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCollisionEnterTrigger GetAsyncCollisionEnterTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCollisionEnterTrigger GetAsyncCollisionEnterTrigger(this Component component) { return component.gameObject.GetAsyncCollisionEnterTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCollisionEnterTrigger : AsyncTriggerBase { void OnCollisionEnter(Collision coll) { RaiseEvent((coll)); } public IAsyncOnCollisionEnterHandler GetOnCollisionEnterAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCollisionEnterHandler GetOnCollisionEnterAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCollisionEnterAsync() { return ((IAsyncOnCollisionEnterHandler)new AsyncTriggerHandler(this, true)).OnCollisionEnterAsync(); } public UniTask OnCollisionEnterAsync(CancellationToken cancellationToken) { return ((IAsyncOnCollisionEnterHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCollisionEnterAsync(); } } #endif #endregion #region CollisionEnter2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnCollisionEnter2DHandler { UniTask OnCollisionEnter2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCollisionEnter2DHandler { UniTask IAsyncOnCollisionEnter2DHandler.OnCollisionEnter2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCollisionEnter2DTrigger GetAsyncCollisionEnter2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCollisionEnter2DTrigger GetAsyncCollisionEnter2DTrigger(this Component component) { return component.gameObject.GetAsyncCollisionEnter2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCollisionEnter2DTrigger : AsyncTriggerBase { void OnCollisionEnter2D(Collision2D coll) { RaiseEvent((coll)); } public IAsyncOnCollisionEnter2DHandler GetOnCollisionEnter2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCollisionEnter2DHandler GetOnCollisionEnter2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCollisionEnter2DAsync() { return ((IAsyncOnCollisionEnter2DHandler)new AsyncTriggerHandler(this, true)).OnCollisionEnter2DAsync(); } public UniTask OnCollisionEnter2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnCollisionEnter2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCollisionEnter2DAsync(); } } #endif #endregion #region CollisionExit #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnCollisionExitHandler { UniTask OnCollisionExitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCollisionExitHandler { UniTask IAsyncOnCollisionExitHandler.OnCollisionExitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCollisionExitTrigger GetAsyncCollisionExitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCollisionExitTrigger GetAsyncCollisionExitTrigger(this Component component) { return component.gameObject.GetAsyncCollisionExitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCollisionExitTrigger : AsyncTriggerBase { void OnCollisionExit(Collision coll) { RaiseEvent((coll)); } public IAsyncOnCollisionExitHandler GetOnCollisionExitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCollisionExitHandler GetOnCollisionExitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCollisionExitAsync() { return ((IAsyncOnCollisionExitHandler)new AsyncTriggerHandler(this, true)).OnCollisionExitAsync(); } public UniTask OnCollisionExitAsync(CancellationToken cancellationToken) { return ((IAsyncOnCollisionExitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCollisionExitAsync(); } } #endif #endregion #region CollisionExit2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnCollisionExit2DHandler { UniTask OnCollisionExit2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCollisionExit2DHandler { UniTask IAsyncOnCollisionExit2DHandler.OnCollisionExit2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCollisionExit2DTrigger GetAsyncCollisionExit2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCollisionExit2DTrigger GetAsyncCollisionExit2DTrigger(this Component component) { return component.gameObject.GetAsyncCollisionExit2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCollisionExit2DTrigger : AsyncTriggerBase { void OnCollisionExit2D(Collision2D coll) { RaiseEvent((coll)); } public IAsyncOnCollisionExit2DHandler GetOnCollisionExit2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCollisionExit2DHandler GetOnCollisionExit2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCollisionExit2DAsync() { return ((IAsyncOnCollisionExit2DHandler)new AsyncTriggerHandler(this, true)).OnCollisionExit2DAsync(); } public UniTask OnCollisionExit2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnCollisionExit2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCollisionExit2DAsync(); } } #endif #endregion #region CollisionStay #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnCollisionStayHandler { UniTask OnCollisionStayAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCollisionStayHandler { UniTask IAsyncOnCollisionStayHandler.OnCollisionStayAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCollisionStayTrigger GetAsyncCollisionStayTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCollisionStayTrigger GetAsyncCollisionStayTrigger(this Component component) { return component.gameObject.GetAsyncCollisionStayTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCollisionStayTrigger : AsyncTriggerBase { void OnCollisionStay(Collision coll) { RaiseEvent((coll)); } public IAsyncOnCollisionStayHandler GetOnCollisionStayAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCollisionStayHandler GetOnCollisionStayAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCollisionStayAsync() { return ((IAsyncOnCollisionStayHandler)new AsyncTriggerHandler(this, true)).OnCollisionStayAsync(); } public UniTask OnCollisionStayAsync(CancellationToken cancellationToken) { return ((IAsyncOnCollisionStayHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCollisionStayAsync(); } } #endif #endregion #region CollisionStay2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnCollisionStay2DHandler { UniTask OnCollisionStay2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCollisionStay2DHandler { UniTask IAsyncOnCollisionStay2DHandler.OnCollisionStay2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCollisionStay2DTrigger GetAsyncCollisionStay2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCollisionStay2DTrigger GetAsyncCollisionStay2DTrigger(this Component component) { return component.gameObject.GetAsyncCollisionStay2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCollisionStay2DTrigger : AsyncTriggerBase { void OnCollisionStay2D(Collision2D coll) { RaiseEvent((coll)); } public IAsyncOnCollisionStay2DHandler GetOnCollisionStay2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCollisionStay2DHandler GetOnCollisionStay2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCollisionStay2DAsync() { return ((IAsyncOnCollisionStay2DHandler)new AsyncTriggerHandler(this, true)).OnCollisionStay2DAsync(); } public UniTask OnCollisionStay2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnCollisionStay2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCollisionStay2DAsync(); } } #endif #endregion #region ControllerColliderHit #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnControllerColliderHitHandler { UniTask OnControllerColliderHitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnControllerColliderHitHandler { UniTask IAsyncOnControllerColliderHitHandler.OnControllerColliderHitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncControllerColliderHitTrigger GetAsyncControllerColliderHitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncControllerColliderHitTrigger GetAsyncControllerColliderHitTrigger(this Component component) { return component.gameObject.GetAsyncControllerColliderHitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncControllerColliderHitTrigger : AsyncTriggerBase { void OnControllerColliderHit(ControllerColliderHit hit) { RaiseEvent((hit)); } public IAsyncOnControllerColliderHitHandler GetOnControllerColliderHitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnControllerColliderHitHandler GetOnControllerColliderHitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnControllerColliderHitAsync() { return ((IAsyncOnControllerColliderHitHandler)new AsyncTriggerHandler(this, true)).OnControllerColliderHitAsync(); } public UniTask OnControllerColliderHitAsync(CancellationToken cancellationToken) { return ((IAsyncOnControllerColliderHitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnControllerColliderHitAsync(); } } #endif #endregion #region Disable public interface IAsyncOnDisableHandler { UniTask OnDisableAsync(); } public partial class AsyncTriggerHandler : IAsyncOnDisableHandler { UniTask IAsyncOnDisableHandler.OnDisableAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncDisableTrigger GetAsyncDisableTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncDisableTrigger GetAsyncDisableTrigger(this Component component) { return component.gameObject.GetAsyncDisableTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncDisableTrigger : AsyncTriggerBase { void OnDisable() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnDisableHandler GetOnDisableAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnDisableHandler GetOnDisableAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnDisableAsync() { return ((IAsyncOnDisableHandler)new AsyncTriggerHandler(this, true)).OnDisableAsync(); } public UniTask OnDisableAsync(CancellationToken cancellationToken) { return ((IAsyncOnDisableHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnDisableAsync(); } } #endregion #region DrawGizmos public interface IAsyncOnDrawGizmosHandler { UniTask OnDrawGizmosAsync(); } public partial class AsyncTriggerHandler : IAsyncOnDrawGizmosHandler { UniTask IAsyncOnDrawGizmosHandler.OnDrawGizmosAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncDrawGizmosTrigger GetAsyncDrawGizmosTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncDrawGizmosTrigger GetAsyncDrawGizmosTrigger(this Component component) { return component.gameObject.GetAsyncDrawGizmosTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncDrawGizmosTrigger : AsyncTriggerBase { void OnDrawGizmos() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnDrawGizmosHandler GetOnDrawGizmosAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnDrawGizmosHandler GetOnDrawGizmosAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnDrawGizmosAsync() { return ((IAsyncOnDrawGizmosHandler)new AsyncTriggerHandler(this, true)).OnDrawGizmosAsync(); } public UniTask OnDrawGizmosAsync(CancellationToken cancellationToken) { return ((IAsyncOnDrawGizmosHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnDrawGizmosAsync(); } } #endregion #region DrawGizmosSelected public interface IAsyncOnDrawGizmosSelectedHandler { UniTask OnDrawGizmosSelectedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnDrawGizmosSelectedHandler { UniTask IAsyncOnDrawGizmosSelectedHandler.OnDrawGizmosSelectedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncDrawGizmosSelectedTrigger GetAsyncDrawGizmosSelectedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncDrawGizmosSelectedTrigger GetAsyncDrawGizmosSelectedTrigger(this Component component) { return component.gameObject.GetAsyncDrawGizmosSelectedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncDrawGizmosSelectedTrigger : AsyncTriggerBase { void OnDrawGizmosSelected() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnDrawGizmosSelectedHandler GetOnDrawGizmosSelectedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnDrawGizmosSelectedHandler GetOnDrawGizmosSelectedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnDrawGizmosSelectedAsync() { return ((IAsyncOnDrawGizmosSelectedHandler)new AsyncTriggerHandler(this, true)).OnDrawGizmosSelectedAsync(); } public UniTask OnDrawGizmosSelectedAsync(CancellationToken cancellationToken) { return ((IAsyncOnDrawGizmosSelectedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnDrawGizmosSelectedAsync(); } } #endregion #region Enable public interface IAsyncOnEnableHandler { UniTask OnEnableAsync(); } public partial class AsyncTriggerHandler : IAsyncOnEnableHandler { UniTask IAsyncOnEnableHandler.OnEnableAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncEnableTrigger GetAsyncEnableTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncEnableTrigger GetAsyncEnableTrigger(this Component component) { return component.gameObject.GetAsyncEnableTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncEnableTrigger : AsyncTriggerBase { void OnEnable() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnEnableHandler GetOnEnableAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnEnableHandler GetOnEnableAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnEnableAsync() { return ((IAsyncOnEnableHandler)new AsyncTriggerHandler(this, true)).OnEnableAsync(); } public UniTask OnEnableAsync(CancellationToken cancellationToken) { return ((IAsyncOnEnableHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnEnableAsync(); } } #endregion #region GUI public interface IAsyncOnGUIHandler { UniTask OnGUIAsync(); } public partial class AsyncTriggerHandler : IAsyncOnGUIHandler { UniTask IAsyncOnGUIHandler.OnGUIAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncGUITrigger GetAsyncGUITrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncGUITrigger GetAsyncGUITrigger(this Component component) { return component.gameObject.GetAsyncGUITrigger(); } } [DisallowMultipleComponent] public sealed class AsyncGUITrigger : AsyncTriggerBase { void OnGUI() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnGUIHandler GetOnGUIAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnGUIHandler GetOnGUIAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnGUIAsync() { return ((IAsyncOnGUIHandler)new AsyncTriggerHandler(this, true)).OnGUIAsync(); } public UniTask OnGUIAsync(CancellationToken cancellationToken) { return ((IAsyncOnGUIHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnGUIAsync(); } } #endregion #region JointBreak #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnJointBreakHandler { UniTask OnJointBreakAsync(); } public partial class AsyncTriggerHandler : IAsyncOnJointBreakHandler { UniTask IAsyncOnJointBreakHandler.OnJointBreakAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncJointBreakTrigger GetAsyncJointBreakTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncJointBreakTrigger GetAsyncJointBreakTrigger(this Component component) { return component.gameObject.GetAsyncJointBreakTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncJointBreakTrigger : AsyncTriggerBase { void OnJointBreak(float breakForce) { RaiseEvent((breakForce)); } public IAsyncOnJointBreakHandler GetOnJointBreakAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnJointBreakHandler GetOnJointBreakAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnJointBreakAsync() { return ((IAsyncOnJointBreakHandler)new AsyncTriggerHandler(this, true)).OnJointBreakAsync(); } public UniTask OnJointBreakAsync(CancellationToken cancellationToken) { return ((IAsyncOnJointBreakHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnJointBreakAsync(); } } #endif #endregion #region JointBreak2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnJointBreak2DHandler { UniTask OnJointBreak2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnJointBreak2DHandler { UniTask IAsyncOnJointBreak2DHandler.OnJointBreak2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncJointBreak2DTrigger GetAsyncJointBreak2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncJointBreak2DTrigger GetAsyncJointBreak2DTrigger(this Component component) { return component.gameObject.GetAsyncJointBreak2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncJointBreak2DTrigger : AsyncTriggerBase { void OnJointBreak2D(Joint2D brokenJoint) { RaiseEvent((brokenJoint)); } public IAsyncOnJointBreak2DHandler GetOnJointBreak2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnJointBreak2DHandler GetOnJointBreak2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnJointBreak2DAsync() { return ((IAsyncOnJointBreak2DHandler)new AsyncTriggerHandler(this, true)).OnJointBreak2DAsync(); } public UniTask OnJointBreak2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnJointBreak2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnJointBreak2DAsync(); } } #endif #endregion #region MouseDown #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseDownHandler { UniTask OnMouseDownAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseDownHandler { UniTask IAsyncOnMouseDownHandler.OnMouseDownAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseDownTrigger GetAsyncMouseDownTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseDownTrigger GetAsyncMouseDownTrigger(this Component component) { return component.gameObject.GetAsyncMouseDownTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseDownTrigger : AsyncTriggerBase { void OnMouseDown() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseDownHandler GetOnMouseDownAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseDownHandler GetOnMouseDownAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseDownAsync() { return ((IAsyncOnMouseDownHandler)new AsyncTriggerHandler(this, true)).OnMouseDownAsync(); } public UniTask OnMouseDownAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseDownHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseDownAsync(); } } #endif #endregion #region MouseDrag #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseDragHandler { UniTask OnMouseDragAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseDragHandler { UniTask IAsyncOnMouseDragHandler.OnMouseDragAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseDragTrigger GetAsyncMouseDragTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseDragTrigger GetAsyncMouseDragTrigger(this Component component) { return component.gameObject.GetAsyncMouseDragTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseDragTrigger : AsyncTriggerBase { void OnMouseDrag() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseDragHandler GetOnMouseDragAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseDragHandler GetOnMouseDragAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseDragAsync() { return ((IAsyncOnMouseDragHandler)new AsyncTriggerHandler(this, true)).OnMouseDragAsync(); } public UniTask OnMouseDragAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseDragHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseDragAsync(); } } #endif #endregion #region MouseEnter #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseEnterHandler { UniTask OnMouseEnterAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseEnterHandler { UniTask IAsyncOnMouseEnterHandler.OnMouseEnterAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseEnterTrigger GetAsyncMouseEnterTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseEnterTrigger GetAsyncMouseEnterTrigger(this Component component) { return component.gameObject.GetAsyncMouseEnterTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseEnterTrigger : AsyncTriggerBase { void OnMouseEnter() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseEnterHandler GetOnMouseEnterAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseEnterHandler GetOnMouseEnterAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseEnterAsync() { return ((IAsyncOnMouseEnterHandler)new AsyncTriggerHandler(this, true)).OnMouseEnterAsync(); } public UniTask OnMouseEnterAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseEnterHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseEnterAsync(); } } #endif #endregion #region MouseExit #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseExitHandler { UniTask OnMouseExitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseExitHandler { UniTask IAsyncOnMouseExitHandler.OnMouseExitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseExitTrigger GetAsyncMouseExitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseExitTrigger GetAsyncMouseExitTrigger(this Component component) { return component.gameObject.GetAsyncMouseExitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseExitTrigger : AsyncTriggerBase { void OnMouseExit() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseExitHandler GetOnMouseExitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseExitHandler GetOnMouseExitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseExitAsync() { return ((IAsyncOnMouseExitHandler)new AsyncTriggerHandler(this, true)).OnMouseExitAsync(); } public UniTask OnMouseExitAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseExitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseExitAsync(); } } #endif #endregion #region MouseOver #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseOverHandler { UniTask OnMouseOverAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseOverHandler { UniTask IAsyncOnMouseOverHandler.OnMouseOverAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseOverTrigger GetAsyncMouseOverTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseOverTrigger GetAsyncMouseOverTrigger(this Component component) { return component.gameObject.GetAsyncMouseOverTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseOverTrigger : AsyncTriggerBase { void OnMouseOver() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseOverHandler GetOnMouseOverAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseOverHandler GetOnMouseOverAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseOverAsync() { return ((IAsyncOnMouseOverHandler)new AsyncTriggerHandler(this, true)).OnMouseOverAsync(); } public UniTask OnMouseOverAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseOverHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseOverAsync(); } } #endif #endregion #region MouseUp #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseUpHandler { UniTask OnMouseUpAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseUpHandler { UniTask IAsyncOnMouseUpHandler.OnMouseUpAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseUpTrigger GetAsyncMouseUpTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseUpTrigger GetAsyncMouseUpTrigger(this Component component) { return component.gameObject.GetAsyncMouseUpTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseUpTrigger : AsyncTriggerBase { void OnMouseUp() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseUpHandler GetOnMouseUpAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseUpHandler GetOnMouseUpAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseUpAsync() { return ((IAsyncOnMouseUpHandler)new AsyncTriggerHandler(this, true)).OnMouseUpAsync(); } public UniTask OnMouseUpAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseUpHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseUpAsync(); } } #endif #endregion #region MouseUpAsButton #if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) public interface IAsyncOnMouseUpAsButtonHandler { UniTask OnMouseUpAsButtonAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMouseUpAsButtonHandler { UniTask IAsyncOnMouseUpAsButtonHandler.OnMouseUpAsButtonAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMouseUpAsButtonTrigger GetAsyncMouseUpAsButtonTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMouseUpAsButtonTrigger GetAsyncMouseUpAsButtonTrigger(this Component component) { return component.gameObject.GetAsyncMouseUpAsButtonTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMouseUpAsButtonTrigger : AsyncTriggerBase { void OnMouseUpAsButton() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnMouseUpAsButtonHandler GetOnMouseUpAsButtonAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMouseUpAsButtonHandler GetOnMouseUpAsButtonAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMouseUpAsButtonAsync() { return ((IAsyncOnMouseUpAsButtonHandler)new AsyncTriggerHandler(this, true)).OnMouseUpAsButtonAsync(); } public UniTask OnMouseUpAsButtonAsync(CancellationToken cancellationToken) { return ((IAsyncOnMouseUpAsButtonHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMouseUpAsButtonAsync(); } } #endif #endregion #region ParticleCollision public interface IAsyncOnParticleCollisionHandler { UniTask OnParticleCollisionAsync(); } public partial class AsyncTriggerHandler : IAsyncOnParticleCollisionHandler { UniTask IAsyncOnParticleCollisionHandler.OnParticleCollisionAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncParticleCollisionTrigger GetAsyncParticleCollisionTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncParticleCollisionTrigger GetAsyncParticleCollisionTrigger(this Component component) { return component.gameObject.GetAsyncParticleCollisionTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncParticleCollisionTrigger : AsyncTriggerBase { void OnParticleCollision(GameObject other) { RaiseEvent((other)); } public IAsyncOnParticleCollisionHandler GetOnParticleCollisionAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnParticleCollisionHandler GetOnParticleCollisionAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnParticleCollisionAsync() { return ((IAsyncOnParticleCollisionHandler)new AsyncTriggerHandler(this, true)).OnParticleCollisionAsync(); } public UniTask OnParticleCollisionAsync(CancellationToken cancellationToken) { return ((IAsyncOnParticleCollisionHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnParticleCollisionAsync(); } } #endregion #region ParticleSystemStopped public interface IAsyncOnParticleSystemStoppedHandler { UniTask OnParticleSystemStoppedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnParticleSystemStoppedHandler { UniTask IAsyncOnParticleSystemStoppedHandler.OnParticleSystemStoppedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncParticleSystemStoppedTrigger GetAsyncParticleSystemStoppedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncParticleSystemStoppedTrigger GetAsyncParticleSystemStoppedTrigger(this Component component) { return component.gameObject.GetAsyncParticleSystemStoppedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncParticleSystemStoppedTrigger : AsyncTriggerBase { void OnParticleSystemStopped() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnParticleSystemStoppedHandler GetOnParticleSystemStoppedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnParticleSystemStoppedHandler GetOnParticleSystemStoppedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnParticleSystemStoppedAsync() { return ((IAsyncOnParticleSystemStoppedHandler)new AsyncTriggerHandler(this, true)).OnParticleSystemStoppedAsync(); } public UniTask OnParticleSystemStoppedAsync(CancellationToken cancellationToken) { return ((IAsyncOnParticleSystemStoppedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnParticleSystemStoppedAsync(); } } #endregion #region ParticleTrigger public interface IAsyncOnParticleTriggerHandler { UniTask OnParticleTriggerAsync(); } public partial class AsyncTriggerHandler : IAsyncOnParticleTriggerHandler { UniTask IAsyncOnParticleTriggerHandler.OnParticleTriggerAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncParticleTriggerTrigger GetAsyncParticleTriggerTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncParticleTriggerTrigger GetAsyncParticleTriggerTrigger(this Component component) { return component.gameObject.GetAsyncParticleTriggerTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncParticleTriggerTrigger : AsyncTriggerBase { void OnParticleTrigger() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnParticleTriggerHandler GetOnParticleTriggerAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnParticleTriggerHandler GetOnParticleTriggerAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnParticleTriggerAsync() { return ((IAsyncOnParticleTriggerHandler)new AsyncTriggerHandler(this, true)).OnParticleTriggerAsync(); } public UniTask OnParticleTriggerAsync(CancellationToken cancellationToken) { return ((IAsyncOnParticleTriggerHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnParticleTriggerAsync(); } } #endregion #region ParticleUpdateJobScheduled #if UNITY_2019_3_OR_NEWER && (!UNITY_2019_1_OR_NEWER || UNITASK_PARTICLESYSTEM_SUPPORT) public interface IAsyncOnParticleUpdateJobScheduledHandler { UniTask OnParticleUpdateJobScheduledAsync(); } public partial class AsyncTriggerHandler : IAsyncOnParticleUpdateJobScheduledHandler { UniTask IAsyncOnParticleUpdateJobScheduledHandler.OnParticleUpdateJobScheduledAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncParticleUpdateJobScheduledTrigger GetAsyncParticleUpdateJobScheduledTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncParticleUpdateJobScheduledTrigger GetAsyncParticleUpdateJobScheduledTrigger(this Component component) { return component.gameObject.GetAsyncParticleUpdateJobScheduledTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncParticleUpdateJobScheduledTrigger : AsyncTriggerBase { void OnParticleUpdateJobScheduled(UnityEngine.ParticleSystemJobs.ParticleSystemJobData particles) { RaiseEvent((particles)); } public IAsyncOnParticleUpdateJobScheduledHandler GetOnParticleUpdateJobScheduledAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnParticleUpdateJobScheduledHandler GetOnParticleUpdateJobScheduledAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnParticleUpdateJobScheduledAsync() { return ((IAsyncOnParticleUpdateJobScheduledHandler)new AsyncTriggerHandler(this, true)).OnParticleUpdateJobScheduledAsync(); } public UniTask OnParticleUpdateJobScheduledAsync(CancellationToken cancellationToken) { return ((IAsyncOnParticleUpdateJobScheduledHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnParticleUpdateJobScheduledAsync(); } } #endif #endregion #region PostRender public interface IAsyncOnPostRenderHandler { UniTask OnPostRenderAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPostRenderHandler { UniTask IAsyncOnPostRenderHandler.OnPostRenderAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPostRenderTrigger GetAsyncPostRenderTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPostRenderTrigger GetAsyncPostRenderTrigger(this Component component) { return component.gameObject.GetAsyncPostRenderTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPostRenderTrigger : AsyncTriggerBase { void OnPostRender() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnPostRenderHandler GetOnPostRenderAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPostRenderHandler GetOnPostRenderAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPostRenderAsync() { return ((IAsyncOnPostRenderHandler)new AsyncTriggerHandler(this, true)).OnPostRenderAsync(); } public UniTask OnPostRenderAsync(CancellationToken cancellationToken) { return ((IAsyncOnPostRenderHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPostRenderAsync(); } } #endregion #region PreCull public interface IAsyncOnPreCullHandler { UniTask OnPreCullAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPreCullHandler { UniTask IAsyncOnPreCullHandler.OnPreCullAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPreCullTrigger GetAsyncPreCullTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPreCullTrigger GetAsyncPreCullTrigger(this Component component) { return component.gameObject.GetAsyncPreCullTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPreCullTrigger : AsyncTriggerBase { void OnPreCull() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnPreCullHandler GetOnPreCullAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPreCullHandler GetOnPreCullAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPreCullAsync() { return ((IAsyncOnPreCullHandler)new AsyncTriggerHandler(this, true)).OnPreCullAsync(); } public UniTask OnPreCullAsync(CancellationToken cancellationToken) { return ((IAsyncOnPreCullHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPreCullAsync(); } } #endregion #region PreRender public interface IAsyncOnPreRenderHandler { UniTask OnPreRenderAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPreRenderHandler { UniTask IAsyncOnPreRenderHandler.OnPreRenderAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPreRenderTrigger GetAsyncPreRenderTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPreRenderTrigger GetAsyncPreRenderTrigger(this Component component) { return component.gameObject.GetAsyncPreRenderTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPreRenderTrigger : AsyncTriggerBase { void OnPreRender() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnPreRenderHandler GetOnPreRenderAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPreRenderHandler GetOnPreRenderAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPreRenderAsync() { return ((IAsyncOnPreRenderHandler)new AsyncTriggerHandler(this, true)).OnPreRenderAsync(); } public UniTask OnPreRenderAsync(CancellationToken cancellationToken) { return ((IAsyncOnPreRenderHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPreRenderAsync(); } } #endregion #region RectTransformDimensionsChange public interface IAsyncOnRectTransformDimensionsChangeHandler { UniTask OnRectTransformDimensionsChangeAsync(); } public partial class AsyncTriggerHandler : IAsyncOnRectTransformDimensionsChangeHandler { UniTask IAsyncOnRectTransformDimensionsChangeHandler.OnRectTransformDimensionsChangeAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncRectTransformDimensionsChangeTrigger GetAsyncRectTransformDimensionsChangeTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncRectTransformDimensionsChangeTrigger GetAsyncRectTransformDimensionsChangeTrigger(this Component component) { return component.gameObject.GetAsyncRectTransformDimensionsChangeTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncRectTransformDimensionsChangeTrigger : AsyncTriggerBase { void OnRectTransformDimensionsChange() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnRectTransformDimensionsChangeHandler GetOnRectTransformDimensionsChangeAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnRectTransformDimensionsChangeHandler GetOnRectTransformDimensionsChangeAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnRectTransformDimensionsChangeAsync() { return ((IAsyncOnRectTransformDimensionsChangeHandler)new AsyncTriggerHandler(this, true)).OnRectTransformDimensionsChangeAsync(); } public UniTask OnRectTransformDimensionsChangeAsync(CancellationToken cancellationToken) { return ((IAsyncOnRectTransformDimensionsChangeHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnRectTransformDimensionsChangeAsync(); } } #endregion #region RectTransformRemoved public interface IAsyncOnRectTransformRemovedHandler { UniTask OnRectTransformRemovedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnRectTransformRemovedHandler { UniTask IAsyncOnRectTransformRemovedHandler.OnRectTransformRemovedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncRectTransformRemovedTrigger GetAsyncRectTransformRemovedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncRectTransformRemovedTrigger GetAsyncRectTransformRemovedTrigger(this Component component) { return component.gameObject.GetAsyncRectTransformRemovedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncRectTransformRemovedTrigger : AsyncTriggerBase { void OnRectTransformRemoved() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnRectTransformRemovedHandler GetOnRectTransformRemovedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnRectTransformRemovedHandler GetOnRectTransformRemovedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnRectTransformRemovedAsync() { return ((IAsyncOnRectTransformRemovedHandler)new AsyncTriggerHandler(this, true)).OnRectTransformRemovedAsync(); } public UniTask OnRectTransformRemovedAsync(CancellationToken cancellationToken) { return ((IAsyncOnRectTransformRemovedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnRectTransformRemovedAsync(); } } #endregion #region RenderImage public interface IAsyncOnRenderImageHandler { UniTask<(RenderTexture source, RenderTexture destination)> OnRenderImageAsync(); } public partial class AsyncTriggerHandler : IAsyncOnRenderImageHandler { UniTask<(RenderTexture source, RenderTexture destination)> IAsyncOnRenderImageHandler.OnRenderImageAsync() { core.Reset(); return new UniTask<(RenderTexture source, RenderTexture destination)>((IUniTaskSource<(RenderTexture source, RenderTexture destination)>)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncRenderImageTrigger GetAsyncRenderImageTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncRenderImageTrigger GetAsyncRenderImageTrigger(this Component component) { return component.gameObject.GetAsyncRenderImageTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncRenderImageTrigger : AsyncTriggerBase<(RenderTexture source, RenderTexture destination)> { void OnRenderImage(RenderTexture source, RenderTexture destination) { RaiseEvent((source, destination)); } public IAsyncOnRenderImageHandler GetOnRenderImageAsyncHandler() { return new AsyncTriggerHandler<(RenderTexture source, RenderTexture destination)>(this, false); } public IAsyncOnRenderImageHandler GetOnRenderImageAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler<(RenderTexture source, RenderTexture destination)>(this, cancellationToken, false); } public UniTask<(RenderTexture source, RenderTexture destination)> OnRenderImageAsync() { return ((IAsyncOnRenderImageHandler)new AsyncTriggerHandler<(RenderTexture source, RenderTexture destination)>(this, true)).OnRenderImageAsync(); } public UniTask<(RenderTexture source, RenderTexture destination)> OnRenderImageAsync(CancellationToken cancellationToken) { return ((IAsyncOnRenderImageHandler)new AsyncTriggerHandler<(RenderTexture source, RenderTexture destination)>(this, cancellationToken, true)).OnRenderImageAsync(); } } #endregion #region RenderObject public interface IAsyncOnRenderObjectHandler { UniTask OnRenderObjectAsync(); } public partial class AsyncTriggerHandler : IAsyncOnRenderObjectHandler { UniTask IAsyncOnRenderObjectHandler.OnRenderObjectAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncRenderObjectTrigger GetAsyncRenderObjectTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncRenderObjectTrigger GetAsyncRenderObjectTrigger(this Component component) { return component.gameObject.GetAsyncRenderObjectTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncRenderObjectTrigger : AsyncTriggerBase { void OnRenderObject() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnRenderObjectHandler GetOnRenderObjectAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnRenderObjectHandler GetOnRenderObjectAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnRenderObjectAsync() { return ((IAsyncOnRenderObjectHandler)new AsyncTriggerHandler(this, true)).OnRenderObjectAsync(); } public UniTask OnRenderObjectAsync(CancellationToken cancellationToken) { return ((IAsyncOnRenderObjectHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnRenderObjectAsync(); } } #endregion #region ServerInitialized public interface IAsyncOnServerInitializedHandler { UniTask OnServerInitializedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnServerInitializedHandler { UniTask IAsyncOnServerInitializedHandler.OnServerInitializedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncServerInitializedTrigger GetAsyncServerInitializedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncServerInitializedTrigger GetAsyncServerInitializedTrigger(this Component component) { return component.gameObject.GetAsyncServerInitializedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncServerInitializedTrigger : AsyncTriggerBase { void OnServerInitialized() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnServerInitializedHandler GetOnServerInitializedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnServerInitializedHandler GetOnServerInitializedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnServerInitializedAsync() { return ((IAsyncOnServerInitializedHandler)new AsyncTriggerHandler(this, true)).OnServerInitializedAsync(); } public UniTask OnServerInitializedAsync(CancellationToken cancellationToken) { return ((IAsyncOnServerInitializedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnServerInitializedAsync(); } } #endregion #region TransformChildrenChanged public interface IAsyncOnTransformChildrenChangedHandler { UniTask OnTransformChildrenChangedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTransformChildrenChangedHandler { UniTask IAsyncOnTransformChildrenChangedHandler.OnTransformChildrenChangedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTransformChildrenChangedTrigger GetAsyncTransformChildrenChangedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTransformChildrenChangedTrigger GetAsyncTransformChildrenChangedTrigger(this Component component) { return component.gameObject.GetAsyncTransformChildrenChangedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTransformChildrenChangedTrigger : AsyncTriggerBase { void OnTransformChildrenChanged() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnTransformChildrenChangedHandler GetOnTransformChildrenChangedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTransformChildrenChangedHandler GetOnTransformChildrenChangedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTransformChildrenChangedAsync() { return ((IAsyncOnTransformChildrenChangedHandler)new AsyncTriggerHandler(this, true)).OnTransformChildrenChangedAsync(); } public UniTask OnTransformChildrenChangedAsync(CancellationToken cancellationToken) { return ((IAsyncOnTransformChildrenChangedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTransformChildrenChangedAsync(); } } #endregion #region TransformParentChanged public interface IAsyncOnTransformParentChangedHandler { UniTask OnTransformParentChangedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTransformParentChangedHandler { UniTask IAsyncOnTransformParentChangedHandler.OnTransformParentChangedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTransformParentChangedTrigger GetAsyncTransformParentChangedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTransformParentChangedTrigger GetAsyncTransformParentChangedTrigger(this Component component) { return component.gameObject.GetAsyncTransformParentChangedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTransformParentChangedTrigger : AsyncTriggerBase { void OnTransformParentChanged() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnTransformParentChangedHandler GetOnTransformParentChangedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTransformParentChangedHandler GetOnTransformParentChangedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTransformParentChangedAsync() { return ((IAsyncOnTransformParentChangedHandler)new AsyncTriggerHandler(this, true)).OnTransformParentChangedAsync(); } public UniTask OnTransformParentChangedAsync(CancellationToken cancellationToken) { return ((IAsyncOnTransformParentChangedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTransformParentChangedAsync(); } } #endregion #region TriggerEnter #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnTriggerEnterHandler { UniTask OnTriggerEnterAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTriggerEnterHandler { UniTask IAsyncOnTriggerEnterHandler.OnTriggerEnterAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTriggerEnterTrigger GetAsyncTriggerEnterTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTriggerEnterTrigger GetAsyncTriggerEnterTrigger(this Component component) { return component.gameObject.GetAsyncTriggerEnterTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTriggerEnterTrigger : AsyncTriggerBase { void OnTriggerEnter(Collider other) { RaiseEvent((other)); } public IAsyncOnTriggerEnterHandler GetOnTriggerEnterAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTriggerEnterHandler GetOnTriggerEnterAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTriggerEnterAsync() { return ((IAsyncOnTriggerEnterHandler)new AsyncTriggerHandler(this, true)).OnTriggerEnterAsync(); } public UniTask OnTriggerEnterAsync(CancellationToken cancellationToken) { return ((IAsyncOnTriggerEnterHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTriggerEnterAsync(); } } #endif #endregion #region TriggerEnter2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnTriggerEnter2DHandler { UniTask OnTriggerEnter2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTriggerEnter2DHandler { UniTask IAsyncOnTriggerEnter2DHandler.OnTriggerEnter2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTriggerEnter2DTrigger GetAsyncTriggerEnter2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTriggerEnter2DTrigger GetAsyncTriggerEnter2DTrigger(this Component component) { return component.gameObject.GetAsyncTriggerEnter2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTriggerEnter2DTrigger : AsyncTriggerBase { void OnTriggerEnter2D(Collider2D other) { RaiseEvent((other)); } public IAsyncOnTriggerEnter2DHandler GetOnTriggerEnter2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTriggerEnter2DHandler GetOnTriggerEnter2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTriggerEnter2DAsync() { return ((IAsyncOnTriggerEnter2DHandler)new AsyncTriggerHandler(this, true)).OnTriggerEnter2DAsync(); } public UniTask OnTriggerEnter2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnTriggerEnter2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTriggerEnter2DAsync(); } } #endif #endregion #region TriggerExit #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnTriggerExitHandler { UniTask OnTriggerExitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTriggerExitHandler { UniTask IAsyncOnTriggerExitHandler.OnTriggerExitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTriggerExitTrigger GetAsyncTriggerExitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTriggerExitTrigger GetAsyncTriggerExitTrigger(this Component component) { return component.gameObject.GetAsyncTriggerExitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTriggerExitTrigger : AsyncTriggerBase { void OnTriggerExit(Collider other) { RaiseEvent((other)); } public IAsyncOnTriggerExitHandler GetOnTriggerExitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTriggerExitHandler GetOnTriggerExitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTriggerExitAsync() { return ((IAsyncOnTriggerExitHandler)new AsyncTriggerHandler(this, true)).OnTriggerExitAsync(); } public UniTask OnTriggerExitAsync(CancellationToken cancellationToken) { return ((IAsyncOnTriggerExitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTriggerExitAsync(); } } #endif #endregion #region TriggerExit2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnTriggerExit2DHandler { UniTask OnTriggerExit2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTriggerExit2DHandler { UniTask IAsyncOnTriggerExit2DHandler.OnTriggerExit2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTriggerExit2DTrigger GetAsyncTriggerExit2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTriggerExit2DTrigger GetAsyncTriggerExit2DTrigger(this Component component) { return component.gameObject.GetAsyncTriggerExit2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTriggerExit2DTrigger : AsyncTriggerBase { void OnTriggerExit2D(Collider2D other) { RaiseEvent((other)); } public IAsyncOnTriggerExit2DHandler GetOnTriggerExit2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTriggerExit2DHandler GetOnTriggerExit2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTriggerExit2DAsync() { return ((IAsyncOnTriggerExit2DHandler)new AsyncTriggerHandler(this, true)).OnTriggerExit2DAsync(); } public UniTask OnTriggerExit2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnTriggerExit2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTriggerExit2DAsync(); } } #endif #endregion #region TriggerStay #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS_SUPPORT public interface IAsyncOnTriggerStayHandler { UniTask OnTriggerStayAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTriggerStayHandler { UniTask IAsyncOnTriggerStayHandler.OnTriggerStayAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTriggerStayTrigger GetAsyncTriggerStayTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTriggerStayTrigger GetAsyncTriggerStayTrigger(this Component component) { return component.gameObject.GetAsyncTriggerStayTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTriggerStayTrigger : AsyncTriggerBase { void OnTriggerStay(Collider other) { RaiseEvent((other)); } public IAsyncOnTriggerStayHandler GetOnTriggerStayAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTriggerStayHandler GetOnTriggerStayAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTriggerStayAsync() { return ((IAsyncOnTriggerStayHandler)new AsyncTriggerHandler(this, true)).OnTriggerStayAsync(); } public UniTask OnTriggerStayAsync(CancellationToken cancellationToken) { return ((IAsyncOnTriggerStayHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTriggerStayAsync(); } } #endif #endregion #region TriggerStay2D #if !UNITY_2019_1_OR_NEWER || UNITASK_PHYSICS2D_SUPPORT public interface IAsyncOnTriggerStay2DHandler { UniTask OnTriggerStay2DAsync(); } public partial class AsyncTriggerHandler : IAsyncOnTriggerStay2DHandler { UniTask IAsyncOnTriggerStay2DHandler.OnTriggerStay2DAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncTriggerStay2DTrigger GetAsyncTriggerStay2DTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncTriggerStay2DTrigger GetAsyncTriggerStay2DTrigger(this Component component) { return component.gameObject.GetAsyncTriggerStay2DTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncTriggerStay2DTrigger : AsyncTriggerBase { void OnTriggerStay2D(Collider2D other) { RaiseEvent((other)); } public IAsyncOnTriggerStay2DHandler GetOnTriggerStay2DAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnTriggerStay2DHandler GetOnTriggerStay2DAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnTriggerStay2DAsync() { return ((IAsyncOnTriggerStay2DHandler)new AsyncTriggerHandler(this, true)).OnTriggerStay2DAsync(); } public UniTask OnTriggerStay2DAsync(CancellationToken cancellationToken) { return ((IAsyncOnTriggerStay2DHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnTriggerStay2DAsync(); } } #endif #endregion #region Validate public interface IAsyncOnValidateHandler { UniTask OnValidateAsync(); } public partial class AsyncTriggerHandler : IAsyncOnValidateHandler { UniTask IAsyncOnValidateHandler.OnValidateAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncValidateTrigger GetAsyncValidateTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncValidateTrigger GetAsyncValidateTrigger(this Component component) { return component.gameObject.GetAsyncValidateTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncValidateTrigger : AsyncTriggerBase { void OnValidate() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnValidateHandler GetOnValidateAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnValidateHandler GetOnValidateAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnValidateAsync() { return ((IAsyncOnValidateHandler)new AsyncTriggerHandler(this, true)).OnValidateAsync(); } public UniTask OnValidateAsync(CancellationToken cancellationToken) { return ((IAsyncOnValidateHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnValidateAsync(); } } #endregion #region WillRenderObject public interface IAsyncOnWillRenderObjectHandler { UniTask OnWillRenderObjectAsync(); } public partial class AsyncTriggerHandler : IAsyncOnWillRenderObjectHandler { UniTask IAsyncOnWillRenderObjectHandler.OnWillRenderObjectAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncWillRenderObjectTrigger GetAsyncWillRenderObjectTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncWillRenderObjectTrigger GetAsyncWillRenderObjectTrigger(this Component component) { return component.gameObject.GetAsyncWillRenderObjectTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncWillRenderObjectTrigger : AsyncTriggerBase { void OnWillRenderObject() { RaiseEvent(AsyncUnit.Default); } public IAsyncOnWillRenderObjectHandler GetOnWillRenderObjectAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnWillRenderObjectHandler GetOnWillRenderObjectAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnWillRenderObjectAsync() { return ((IAsyncOnWillRenderObjectHandler)new AsyncTriggerHandler(this, true)).OnWillRenderObjectAsync(); } public UniTask OnWillRenderObjectAsync(CancellationToken cancellationToken) { return ((IAsyncOnWillRenderObjectHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnWillRenderObjectAsync(); } } #endregion #region Reset public interface IAsyncResetHandler { UniTask ResetAsync(); } public partial class AsyncTriggerHandler : IAsyncResetHandler { UniTask IAsyncResetHandler.ResetAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncResetTrigger GetAsyncResetTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncResetTrigger GetAsyncResetTrigger(this Component component) { return component.gameObject.GetAsyncResetTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncResetTrigger : AsyncTriggerBase { void Reset() { RaiseEvent(AsyncUnit.Default); } public IAsyncResetHandler GetResetAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncResetHandler GetResetAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask ResetAsync() { return ((IAsyncResetHandler)new AsyncTriggerHandler(this, true)).ResetAsync(); } public UniTask ResetAsync(CancellationToken cancellationToken) { return ((IAsyncResetHandler)new AsyncTriggerHandler(this, cancellationToken, true)).ResetAsync(); } } #endregion #region Update public interface IAsyncUpdateHandler { UniTask UpdateAsync(); } public partial class AsyncTriggerHandler : IAsyncUpdateHandler { UniTask IAsyncUpdateHandler.UpdateAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncUpdateTrigger GetAsyncUpdateTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncUpdateTrigger GetAsyncUpdateTrigger(this Component component) { return component.gameObject.GetAsyncUpdateTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncUpdateTrigger : AsyncTriggerBase { void Update() { RaiseEvent(AsyncUnit.Default); } public IAsyncUpdateHandler GetUpdateAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncUpdateHandler GetUpdateAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask UpdateAsync() { return ((IAsyncUpdateHandler)new AsyncTriggerHandler(this, true)).UpdateAsync(); } public UniTask UpdateAsync(CancellationToken cancellationToken) { return ((IAsyncUpdateHandler)new AsyncTriggerHandler(this, cancellationToken, true)).UpdateAsync(); } } #endregion #region BeginDrag #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnBeginDragHandler { UniTask OnBeginDragAsync(); } public partial class AsyncTriggerHandler : IAsyncOnBeginDragHandler { UniTask IAsyncOnBeginDragHandler.OnBeginDragAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncBeginDragTrigger GetAsyncBeginDragTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncBeginDragTrigger GetAsyncBeginDragTrigger(this Component component) { return component.gameObject.GetAsyncBeginDragTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncBeginDragTrigger : AsyncTriggerBase, IBeginDragHandler { void IBeginDragHandler.OnBeginDrag(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnBeginDragHandler GetOnBeginDragAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnBeginDragHandler GetOnBeginDragAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnBeginDragAsync() { return ((IAsyncOnBeginDragHandler)new AsyncTriggerHandler(this, true)).OnBeginDragAsync(); } public UniTask OnBeginDragAsync(CancellationToken cancellationToken) { return ((IAsyncOnBeginDragHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnBeginDragAsync(); } } #endif #endregion #region Cancel #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnCancelHandler { UniTask OnCancelAsync(); } public partial class AsyncTriggerHandler : IAsyncOnCancelHandler { UniTask IAsyncOnCancelHandler.OnCancelAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncCancelTrigger GetAsyncCancelTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncCancelTrigger GetAsyncCancelTrigger(this Component component) { return component.gameObject.GetAsyncCancelTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncCancelTrigger : AsyncTriggerBase, ICancelHandler { void ICancelHandler.OnCancel(BaseEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnCancelHandler GetOnCancelAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnCancelHandler GetOnCancelAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnCancelAsync() { return ((IAsyncOnCancelHandler)new AsyncTriggerHandler(this, true)).OnCancelAsync(); } public UniTask OnCancelAsync(CancellationToken cancellationToken) { return ((IAsyncOnCancelHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnCancelAsync(); } } #endif #endregion #region Deselect #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnDeselectHandler { UniTask OnDeselectAsync(); } public partial class AsyncTriggerHandler : IAsyncOnDeselectHandler { UniTask IAsyncOnDeselectHandler.OnDeselectAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncDeselectTrigger GetAsyncDeselectTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncDeselectTrigger GetAsyncDeselectTrigger(this Component component) { return component.gameObject.GetAsyncDeselectTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncDeselectTrigger : AsyncTriggerBase, IDeselectHandler { void IDeselectHandler.OnDeselect(BaseEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnDeselectHandler GetOnDeselectAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnDeselectHandler GetOnDeselectAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnDeselectAsync() { return ((IAsyncOnDeselectHandler)new AsyncTriggerHandler(this, true)).OnDeselectAsync(); } public UniTask OnDeselectAsync(CancellationToken cancellationToken) { return ((IAsyncOnDeselectHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnDeselectAsync(); } } #endif #endregion #region Drag #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnDragHandler { UniTask OnDragAsync(); } public partial class AsyncTriggerHandler : IAsyncOnDragHandler { UniTask IAsyncOnDragHandler.OnDragAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncDragTrigger GetAsyncDragTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncDragTrigger GetAsyncDragTrigger(this Component component) { return component.gameObject.GetAsyncDragTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncDragTrigger : AsyncTriggerBase, IDragHandler { void IDragHandler.OnDrag(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnDragHandler GetOnDragAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnDragHandler GetOnDragAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnDragAsync() { return ((IAsyncOnDragHandler)new AsyncTriggerHandler(this, true)).OnDragAsync(); } public UniTask OnDragAsync(CancellationToken cancellationToken) { return ((IAsyncOnDragHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnDragAsync(); } } #endif #endregion #region Drop #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnDropHandler { UniTask OnDropAsync(); } public partial class AsyncTriggerHandler : IAsyncOnDropHandler { UniTask IAsyncOnDropHandler.OnDropAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncDropTrigger GetAsyncDropTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncDropTrigger GetAsyncDropTrigger(this Component component) { return component.gameObject.GetAsyncDropTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncDropTrigger : AsyncTriggerBase, IDropHandler { void IDropHandler.OnDrop(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnDropHandler GetOnDropAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnDropHandler GetOnDropAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnDropAsync() { return ((IAsyncOnDropHandler)new AsyncTriggerHandler(this, true)).OnDropAsync(); } public UniTask OnDropAsync(CancellationToken cancellationToken) { return ((IAsyncOnDropHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnDropAsync(); } } #endif #endregion #region EndDrag #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnEndDragHandler { UniTask OnEndDragAsync(); } public partial class AsyncTriggerHandler : IAsyncOnEndDragHandler { UniTask IAsyncOnEndDragHandler.OnEndDragAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncEndDragTrigger GetAsyncEndDragTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncEndDragTrigger GetAsyncEndDragTrigger(this Component component) { return component.gameObject.GetAsyncEndDragTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncEndDragTrigger : AsyncTriggerBase, IEndDragHandler { void IEndDragHandler.OnEndDrag(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnEndDragHandler GetOnEndDragAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnEndDragHandler GetOnEndDragAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnEndDragAsync() { return ((IAsyncOnEndDragHandler)new AsyncTriggerHandler(this, true)).OnEndDragAsync(); } public UniTask OnEndDragAsync(CancellationToken cancellationToken) { return ((IAsyncOnEndDragHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnEndDragAsync(); } } #endif #endregion #region InitializePotentialDrag #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnInitializePotentialDragHandler { UniTask OnInitializePotentialDragAsync(); } public partial class AsyncTriggerHandler : IAsyncOnInitializePotentialDragHandler { UniTask IAsyncOnInitializePotentialDragHandler.OnInitializePotentialDragAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncInitializePotentialDragTrigger GetAsyncInitializePotentialDragTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncInitializePotentialDragTrigger GetAsyncInitializePotentialDragTrigger(this Component component) { return component.gameObject.GetAsyncInitializePotentialDragTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncInitializePotentialDragTrigger : AsyncTriggerBase, IInitializePotentialDragHandler { void IInitializePotentialDragHandler.OnInitializePotentialDrag(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnInitializePotentialDragHandler GetOnInitializePotentialDragAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnInitializePotentialDragHandler GetOnInitializePotentialDragAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnInitializePotentialDragAsync() { return ((IAsyncOnInitializePotentialDragHandler)new AsyncTriggerHandler(this, true)).OnInitializePotentialDragAsync(); } public UniTask OnInitializePotentialDragAsync(CancellationToken cancellationToken) { return ((IAsyncOnInitializePotentialDragHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnInitializePotentialDragAsync(); } } #endif #endregion #region Move #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnMoveHandler { UniTask OnMoveAsync(); } public partial class AsyncTriggerHandler : IAsyncOnMoveHandler { UniTask IAsyncOnMoveHandler.OnMoveAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncMoveTrigger GetAsyncMoveTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncMoveTrigger GetAsyncMoveTrigger(this Component component) { return component.gameObject.GetAsyncMoveTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncMoveTrigger : AsyncTriggerBase, IMoveHandler { void IMoveHandler.OnMove(AxisEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnMoveHandler GetOnMoveAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnMoveHandler GetOnMoveAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnMoveAsync() { return ((IAsyncOnMoveHandler)new AsyncTriggerHandler(this, true)).OnMoveAsync(); } public UniTask OnMoveAsync(CancellationToken cancellationToken) { return ((IAsyncOnMoveHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnMoveAsync(); } } #endif #endregion #region PointerClick #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnPointerClickHandler { UniTask OnPointerClickAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPointerClickHandler { UniTask IAsyncOnPointerClickHandler.OnPointerClickAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPointerClickTrigger GetAsyncPointerClickTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPointerClickTrigger GetAsyncPointerClickTrigger(this Component component) { return component.gameObject.GetAsyncPointerClickTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPointerClickTrigger : AsyncTriggerBase, IPointerClickHandler { void IPointerClickHandler.OnPointerClick(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnPointerClickHandler GetOnPointerClickAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPointerClickHandler GetOnPointerClickAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPointerClickAsync() { return ((IAsyncOnPointerClickHandler)new AsyncTriggerHandler(this, true)).OnPointerClickAsync(); } public UniTask OnPointerClickAsync(CancellationToken cancellationToken) { return ((IAsyncOnPointerClickHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPointerClickAsync(); } } #endif #endregion #region PointerDown #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnPointerDownHandler { UniTask OnPointerDownAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPointerDownHandler { UniTask IAsyncOnPointerDownHandler.OnPointerDownAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPointerDownTrigger GetAsyncPointerDownTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPointerDownTrigger GetAsyncPointerDownTrigger(this Component component) { return component.gameObject.GetAsyncPointerDownTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPointerDownTrigger : AsyncTriggerBase, IPointerDownHandler { void IPointerDownHandler.OnPointerDown(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnPointerDownHandler GetOnPointerDownAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPointerDownHandler GetOnPointerDownAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPointerDownAsync() { return ((IAsyncOnPointerDownHandler)new AsyncTriggerHandler(this, true)).OnPointerDownAsync(); } public UniTask OnPointerDownAsync(CancellationToken cancellationToken) { return ((IAsyncOnPointerDownHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPointerDownAsync(); } } #endif #endregion #region PointerEnter #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnPointerEnterHandler { UniTask OnPointerEnterAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPointerEnterHandler { UniTask IAsyncOnPointerEnterHandler.OnPointerEnterAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPointerEnterTrigger GetAsyncPointerEnterTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPointerEnterTrigger GetAsyncPointerEnterTrigger(this Component component) { return component.gameObject.GetAsyncPointerEnterTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPointerEnterTrigger : AsyncTriggerBase, IPointerEnterHandler { void IPointerEnterHandler.OnPointerEnter(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnPointerEnterHandler GetOnPointerEnterAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPointerEnterHandler GetOnPointerEnterAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPointerEnterAsync() { return ((IAsyncOnPointerEnterHandler)new AsyncTriggerHandler(this, true)).OnPointerEnterAsync(); } public UniTask OnPointerEnterAsync(CancellationToken cancellationToken) { return ((IAsyncOnPointerEnterHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPointerEnterAsync(); } } #endif #endregion #region PointerExit #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnPointerExitHandler { UniTask OnPointerExitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPointerExitHandler { UniTask IAsyncOnPointerExitHandler.OnPointerExitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPointerExitTrigger GetAsyncPointerExitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPointerExitTrigger GetAsyncPointerExitTrigger(this Component component) { return component.gameObject.GetAsyncPointerExitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPointerExitTrigger : AsyncTriggerBase, IPointerExitHandler { void IPointerExitHandler.OnPointerExit(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnPointerExitHandler GetOnPointerExitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPointerExitHandler GetOnPointerExitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPointerExitAsync() { return ((IAsyncOnPointerExitHandler)new AsyncTriggerHandler(this, true)).OnPointerExitAsync(); } public UniTask OnPointerExitAsync(CancellationToken cancellationToken) { return ((IAsyncOnPointerExitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPointerExitAsync(); } } #endif #endregion #region PointerUp #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnPointerUpHandler { UniTask OnPointerUpAsync(); } public partial class AsyncTriggerHandler : IAsyncOnPointerUpHandler { UniTask IAsyncOnPointerUpHandler.OnPointerUpAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncPointerUpTrigger GetAsyncPointerUpTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncPointerUpTrigger GetAsyncPointerUpTrigger(this Component component) { return component.gameObject.GetAsyncPointerUpTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncPointerUpTrigger : AsyncTriggerBase, IPointerUpHandler { void IPointerUpHandler.OnPointerUp(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnPointerUpHandler GetOnPointerUpAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnPointerUpHandler GetOnPointerUpAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnPointerUpAsync() { return ((IAsyncOnPointerUpHandler)new AsyncTriggerHandler(this, true)).OnPointerUpAsync(); } public UniTask OnPointerUpAsync(CancellationToken cancellationToken) { return ((IAsyncOnPointerUpHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnPointerUpAsync(); } } #endif #endregion #region Scroll #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnScrollHandler { UniTask OnScrollAsync(); } public partial class AsyncTriggerHandler : IAsyncOnScrollHandler { UniTask IAsyncOnScrollHandler.OnScrollAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncScrollTrigger GetAsyncScrollTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncScrollTrigger GetAsyncScrollTrigger(this Component component) { return component.gameObject.GetAsyncScrollTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncScrollTrigger : AsyncTriggerBase, IScrollHandler { void IScrollHandler.OnScroll(PointerEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnScrollHandler GetOnScrollAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnScrollHandler GetOnScrollAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnScrollAsync() { return ((IAsyncOnScrollHandler)new AsyncTriggerHandler(this, true)).OnScrollAsync(); } public UniTask OnScrollAsync(CancellationToken cancellationToken) { return ((IAsyncOnScrollHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnScrollAsync(); } } #endif #endregion #region Select #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnSelectHandler { UniTask OnSelectAsync(); } public partial class AsyncTriggerHandler : IAsyncOnSelectHandler { UniTask IAsyncOnSelectHandler.OnSelectAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncSelectTrigger GetAsyncSelectTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncSelectTrigger GetAsyncSelectTrigger(this Component component) { return component.gameObject.GetAsyncSelectTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncSelectTrigger : AsyncTriggerBase, ISelectHandler { void ISelectHandler.OnSelect(BaseEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnSelectHandler GetOnSelectAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnSelectHandler GetOnSelectAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnSelectAsync() { return ((IAsyncOnSelectHandler)new AsyncTriggerHandler(this, true)).OnSelectAsync(); } public UniTask OnSelectAsync(CancellationToken cancellationToken) { return ((IAsyncOnSelectHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnSelectAsync(); } } #endif #endregion #region Submit #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnSubmitHandler { UniTask OnSubmitAsync(); } public partial class AsyncTriggerHandler : IAsyncOnSubmitHandler { UniTask IAsyncOnSubmitHandler.OnSubmitAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncSubmitTrigger GetAsyncSubmitTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncSubmitTrigger GetAsyncSubmitTrigger(this Component component) { return component.gameObject.GetAsyncSubmitTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncSubmitTrigger : AsyncTriggerBase, ISubmitHandler { void ISubmitHandler.OnSubmit(BaseEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnSubmitHandler GetOnSubmitAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnSubmitHandler GetOnSubmitAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnSubmitAsync() { return ((IAsyncOnSubmitHandler)new AsyncTriggerHandler(this, true)).OnSubmitAsync(); } public UniTask OnSubmitAsync(CancellationToken cancellationToken) { return ((IAsyncOnSubmitHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnSubmitAsync(); } } #endif #endregion #region UpdateSelected #if !UNITY_2019_1_OR_NEWER || UNITASK_UGUI_SUPPORT public interface IAsyncOnUpdateSelectedHandler { UniTask OnUpdateSelectedAsync(); } public partial class AsyncTriggerHandler : IAsyncOnUpdateSelectedHandler { UniTask IAsyncOnUpdateSelectedHandler.OnUpdateSelectedAsync() { core.Reset(); return new UniTask((IUniTaskSource)(object)this, core.Version); } } public static partial class AsyncTriggerExtensions { public static AsyncUpdateSelectedTrigger GetAsyncUpdateSelectedTrigger(this GameObject gameObject) { return GetOrAddComponent(gameObject); } public static AsyncUpdateSelectedTrigger GetAsyncUpdateSelectedTrigger(this Component component) { return component.gameObject.GetAsyncUpdateSelectedTrigger(); } } [DisallowMultipleComponent] public sealed class AsyncUpdateSelectedTrigger : AsyncTriggerBase, IUpdateSelectedHandler { void IUpdateSelectedHandler.OnUpdateSelected(BaseEventData eventData) { RaiseEvent((eventData)); } public IAsyncOnUpdateSelectedHandler GetOnUpdateSelectedAsyncHandler() { return new AsyncTriggerHandler(this, false); } public IAsyncOnUpdateSelectedHandler GetOnUpdateSelectedAsyncHandler(CancellationToken cancellationToken) { return new AsyncTriggerHandler(this, cancellationToken, false); } public UniTask OnUpdateSelectedAsync() { return ((IAsyncOnUpdateSelectedHandler)new AsyncTriggerHandler(this, true)).OnUpdateSelectedAsync(); } public UniTask OnUpdateSelectedAsync(CancellationToken cancellationToken) { return ((IAsyncOnUpdateSelectedHandler)new AsyncTriggerHandler(this, cancellationToken, true)).OnUpdateSelectedAsync(); } } #endif #endregion }