From f7c95bcabd8dbdf28e490438c3fcc1cd87ac2a87 Mon Sep 17 00:00:00 2001 From: Yoshitaka Kimisaki Date: Fri, 5 Jul 2019 14:41:42 +0900 Subject: [PATCH 1/5] Add ToUniTask for AssetBundleRequest. --- Assets/UniRx.Async/UnityAsyncExtensions.cs | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/Assets/UniRx.Async/UnityAsyncExtensions.cs b/Assets/UniRx.Async/UnityAsyncExtensions.cs index 7d7f0a8..77fe595 100644 --- a/Assets/UniRx.Async/UnityAsyncExtensions.cs +++ b/Assets/UniRx.Async/UnityAsyncExtensions.cs @@ -59,6 +59,30 @@ namespace UniRx.Async return new UniTask(awaiter); } + public static AssetBundleRequestAwaiter GetAwaiter(this AssetBundleRequest resourceRequest) + { + Error.ThrowArgumentNullException(resourceRequest, nameof(resourceRequest)); + return new AssetBundleRequestAwaiter(resourceRequest); + } + + public static UniTask ToUniTask(this AssetBundleRequest resourceRequest) + { + Error.ThrowArgumentNullException(resourceRequest, nameof(resourceRequest)); + return new UniTask(new AssetBundleRequestAwaiter(resourceRequest)); + } + + public static UniTask ConfigureAwait(this AssetBundleRequest resourceRequest, IProgress progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellation = default(CancellationToken)) + { + Error.ThrowArgumentNullException(resourceRequest, nameof(resourceRequest)); + + var awaiter = new AssetBundleRequestConfiguredAwaiter(resourceRequest, progress, cancellation); + if (!awaiter.IsCompleted) + { + PlayerLoopHelper.AddAction(timing, awaiter); + } + return new UniTask(awaiter); + } + #if ENABLE_WWW #if UNITY_2018_3_OR_NEWER @@ -443,6 +467,166 @@ namespace UniRx.Async } } + public struct AssetBundleRequestAwaiter : IAwaiter + { + AssetBundleRequest asyncOperation; + Action continuationAction; + AwaiterStatus status; + UnityEngine.Object result; + + public AssetBundleRequestAwaiter(AssetBundleRequest asyncOperation) + { + this.status = asyncOperation.isDone ? AwaiterStatus.Succeeded : AwaiterStatus.Pending; + this.asyncOperation = (this.status.IsCompleted()) ? null : asyncOperation; + this.result = (this.status.IsCompletedSuccessfully()) ? asyncOperation.asset : null; + this.continuationAction = null; + } + + public bool IsCompleted => status.IsCompleted(); + public AwaiterStatus Status => status; + + public UnityEngine.Object GetResult() + { + if (status == AwaiterStatus.Succeeded) return this.result; + + if (status == AwaiterStatus.Pending) + { + // first timing of call + if (asyncOperation.isDone) + { + status = AwaiterStatus.Succeeded; + } + else + { + Error.ThrowNotYetCompleted(); + } + } + + this.result = asyncOperation.asset; + + if (continuationAction != null) + { + asyncOperation.completed -= continuationAction; + asyncOperation = null; // remove reference. + continuationAction = null; + } + else + { + asyncOperation = null; // remove reference. + } + + return this.result; + } + + void IAwaiter.GetResult() => GetResult(); + + public void OnCompleted(Action continuation) + { + UnsafeOnCompleted(continuation); + } + + public void UnsafeOnCompleted(Action continuation) + { + Error.ThrowWhenContinuationIsAlreadyRegistered(continuationAction); + continuationAction = continuation.AsFuncOfT(); + asyncOperation.completed += continuationAction; + } + } + + class AssetBundleRequestConfiguredAwaiter : IAwaiter, IPlayerLoopItem + { + AssetBundleRequest asyncOperation; + IProgress progress; + CancellationToken cancellationToken; + AwaiterStatus status; + Action continuation; + UnityEngine.Object result; + + public AssetBundleRequestConfiguredAwaiter(AssetBundleRequest asyncOperation, IProgress progress, CancellationToken cancellationToken) + { + this.status = cancellationToken.IsCancellationRequested ? AwaiterStatus.Canceled + : asyncOperation.isDone ? AwaiterStatus.Succeeded + : AwaiterStatus.Pending; + + if (this.status.IsCompletedSuccessfully()) this.result = asyncOperation.asset; + if (this.status.IsCompleted()) return; + + this.asyncOperation = asyncOperation; + this.progress = progress; + this.cancellationToken = cancellationToken; + this.continuation = null; + this.result = null; + + TaskTracker.TrackActiveTask(this, 2); + } + + public bool IsCompleted => status.IsCompleted(); + public AwaiterStatus Status => status; + void IAwaiter.GetResult() => GetResult(); + + public UnityEngine.Object GetResult() + { + if (status == AwaiterStatus.Succeeded) return this.result; + + if (status == AwaiterStatus.Canceled) + { + Error.ThrowOperationCanceledException(); + } + + return Error.ThrowNotYetCompleted(); + } + + public bool MoveNext() + { + if (cancellationToken.IsCancellationRequested) + { + InvokeContinuation(AwaiterStatus.Canceled); + return false; + } + + if (progress != null) + { + progress.Report(asyncOperation.progress); + } + + if (asyncOperation.isDone) + { + this.result = asyncOperation.asset; + InvokeContinuation(AwaiterStatus.Succeeded); + return false; + } + + return true; + } + + void InvokeContinuation(AwaiterStatus status) + { + this.status = status; + var cont = this.continuation; + + // cleanup + TaskTracker.RemoveTracking(this); + this.continuation = null; + this.cancellationToken = CancellationToken.None; + this.progress = null; + this.asyncOperation = null; + + if (cont != null) cont.Invoke(); + } + + public void OnCompleted(Action continuation) + { + Error.ThrowWhenContinuationIsAlreadyRegistered(this.continuation); + this.continuation = continuation; + } + + public void UnsafeOnCompleted(Action continuation) + { + Error.ThrowWhenContinuationIsAlreadyRegistered(this.continuation); + this.continuation = continuation; + } + } + #if ENABLE_WWW #if UNITY_2018_3_OR_NEWER From 89d7e7c5fba8549c667455e6784a1414ee74761e Mon Sep 17 00:00:00 2001 From: Shunta Imai Date: Wed, 24 Jul 2019 15:49:53 +0900 Subject: [PATCH 2/5] Fixed compile error in some platform --- Assets/UniRx.Async/Internal/ReusablePromise.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/UniRx.Async/Internal/ReusablePromise.cs b/Assets/UniRx.Async/Internal/ReusablePromise.cs index 5e1efea..68ade0a 100644 --- a/Assets/UniRx.Async/Internal/ReusablePromise.cs +++ b/Assets/UniRx.Async/Internal/ReusablePromise.cs @@ -391,5 +391,5 @@ namespace UniRx.Async.Internal public abstract bool MoveNext(); } +} #endif -} \ No newline at end of file From 47b701eed044a935bf69a4bb5e11c34d5beae5b6 Mon Sep 17 00:00:00 2001 From: Js Date: Fri, 2 Aug 2019 13:56:48 +0900 Subject: [PATCH 3/5] fix #30 OnCompleted won't be called on UniTask.ToObservable() when UniTask.IsCompleted == true --- Assets/UniRx.Async/UniTaskObservableExtensions.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/UniRx.Async/UniTaskObservableExtensions.cs b/Assets/UniRx.Async/UniTaskObservableExtensions.cs index a089093..2c5dd49 100644 --- a/Assets/UniRx.Async/UniTaskObservableExtensions.cs +++ b/Assets/UniRx.Async/UniTaskObservableExtensions.cs @@ -257,6 +257,7 @@ namespace UniRx.Async public IDisposable Subscribe(IObserver observer) { observer.OnNext(value); + observer.OnCompleted(); return EmptyDisposable.Instance; } } From 85eeeb3dd508cdec9ac6512e2e74a3e099ef3cfd Mon Sep 17 00:00:00 2001 From: Js Date: Fri, 2 Aug 2019 13:58:29 +0900 Subject: [PATCH 4/5] UnitTest for UniTask.ToObservable() --- Assets/Tests/AsyncTest.cs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Assets/Tests/AsyncTest.cs b/Assets/Tests/AsyncTest.cs index b6f1833..248ebad 100644 --- a/Assets/Tests/AsyncTest.cs +++ b/Assets/Tests/AsyncTest.cs @@ -395,6 +395,40 @@ namespace UniRx.AsyncTests yield return new WaitForSeconds(3); } + [UnityTest] + public IEnumerator ToObservable() => UniTask.ToCoroutine(async () => + { + var completedTaskObserver = new ToObservableObserver(); + completedTaskObserver.OnNextCalled.Should().BeFalse(); + completedTaskObserver.OnCompletedCalled.Should().BeFalse(); + completedTaskObserver.OnErrorCalled.Should().BeFalse(); + UniTask.CompletedTask.ToObservable().Subscribe(completedTaskObserver); + completedTaskObserver.OnNextCalled.Should().BeTrue(); + completedTaskObserver.OnCompletedCalled.Should().BeTrue(); + completedTaskObserver.OnErrorCalled.Should().BeFalse(); + + var delayFrameTaskObserver = new ToObservableObserver(); + UniTask.DelayFrame(1).ToObservable().Subscribe(delayFrameTaskObserver); + delayFrameTaskObserver.OnNextCalled.Should().BeFalse(); + delayFrameTaskObserver.OnCompletedCalled.Should().BeFalse(); + delayFrameTaskObserver.OnErrorCalled.Should().BeFalse(); + await UniTask.DelayFrame(1); + delayFrameTaskObserver.OnNextCalled.Should().BeTrue(); + delayFrameTaskObserver.OnCompletedCalled.Should().BeTrue(); + delayFrameTaskObserver.OnErrorCalled.Should().BeFalse(); + }); + + class ToObservableObserver : IObserver + { + public bool OnNextCalled { get; private set; } + public bool OnCompletedCalled { get; private set; } + public bool OnErrorCalled { get; private set; } + + public void OnNext(T value) => OnNextCalled = true; + public void OnCompleted() => OnCompletedCalled = true; + public void OnError(Exception error) => OnErrorCalled = true; + } + #endif #endif } From 08913104a952f5a843169ab8611c01a451c0fab2 Mon Sep 17 00:00:00 2001 From: TORISOUP Date: Tue, 13 Aug 2019 23:33:00 +0900 Subject: [PATCH 5/5] Implements EventSystem interfaces. --- Assets/UniRx.Async/Triggers/AsyncBeginDragTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncCancelTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncDeselectTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncDragTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncDropTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncEndDragTrigger.cs | 4 ++-- .../Triggers/AsyncInitializePotentialDragTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncMoveTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncPointerClickTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncPointerDownTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncPointerEnterTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncPointerExitTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncPointerUpTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncScrollTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncSelectTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncSubmitTrigger.cs | 4 ++-- Assets/UniRx.Async/Triggers/AsyncUpdateSelectedTrigger.cs | 4 ++-- 17 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Assets/UniRx.Async/Triggers/AsyncBeginDragTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncBeginDragTrigger.cs index e17664b..bbecbea 100644 --- a/Assets/UniRx.Async/Triggers/AsyncBeginDragTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncBeginDragTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncBeginDragTrigger : AsyncTriggerBase + public class AsyncBeginDragTrigger : AsyncTriggerBase, IBeginDragHandler { AsyncTriggerPromise onBeginDrag; AsyncTriggerPromiseDictionary onBeginDrags; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnBeginDrag(PointerEventData eventData) + void IBeginDragHandler.OnBeginDrag(PointerEventData eventData) { TrySetResult(onBeginDrag, onBeginDrags, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncCancelTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncCancelTrigger.cs index f397dde..9b14689 100644 --- a/Assets/UniRx.Async/Triggers/AsyncCancelTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncCancelTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncCancelTrigger : AsyncTriggerBase + public class AsyncCancelTrigger : AsyncTriggerBase, ICancelHandler { AsyncTriggerPromise onCancel; AsyncTriggerPromiseDictionary onCancels; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnCancel(BaseEventData eventData) + void ICancelHandler.OnCancel(BaseEventData eventData) { TrySetResult(onCancel, onCancels, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncDeselectTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncDeselectTrigger.cs index e1e7ce4..a76b421 100644 --- a/Assets/UniRx.Async/Triggers/AsyncDeselectTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncDeselectTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncDeselectTrigger : AsyncTriggerBase + public class AsyncDeselectTrigger : AsyncTriggerBase, IDeselectHandler { AsyncTriggerPromise onDeselect; AsyncTriggerPromiseDictionary onDeselects; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnDeselect(BaseEventData eventData) + void IDeselectHandler.OnDeselect(BaseEventData eventData) { TrySetResult(onDeselect, onDeselects, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncDragTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncDragTrigger.cs index b1e4d56..0a36282 100644 --- a/Assets/UniRx.Async/Triggers/AsyncDragTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncDragTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncDragTrigger : AsyncTriggerBase + public class AsyncDragTrigger : AsyncTriggerBase, IDragHandler { AsyncTriggerPromise onDrag; AsyncTriggerPromiseDictionary onDrags; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnDrag(PointerEventData eventData) + void IDragHandler.OnDrag(PointerEventData eventData) { TrySetResult(onDrag, onDrags, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncDropTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncDropTrigger.cs index 7042c4d..25b6217 100644 --- a/Assets/UniRx.Async/Triggers/AsyncDropTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncDropTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncDropTrigger : AsyncTriggerBase + public class AsyncDropTrigger : AsyncTriggerBase, IDropHandler { AsyncTriggerPromise onDrop; AsyncTriggerPromiseDictionary onDrops; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnDrop(PointerEventData eventData) + void IDropHandler.OnDrop(PointerEventData eventData) { TrySetResult(onDrop, onDrops, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncEndDragTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncEndDragTrigger.cs index 2b4ce34..0e8f27c 100644 --- a/Assets/UniRx.Async/Triggers/AsyncEndDragTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncEndDragTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncEndDragTrigger : AsyncTriggerBase + public class AsyncEndDragTrigger : AsyncTriggerBase, IEndDragHandler { AsyncTriggerPromise onEndDrag; AsyncTriggerPromiseDictionary onEndDrags; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnEndDrag(PointerEventData eventData) + void IEndDragHandler.OnEndDrag(PointerEventData eventData) { TrySetResult(onEndDrag, onEndDrags, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncInitializePotentialDragTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncInitializePotentialDragTrigger.cs index 4334b4e..8dda82a 100644 --- a/Assets/UniRx.Async/Triggers/AsyncInitializePotentialDragTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncInitializePotentialDragTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncInitializePotentialDragTrigger : AsyncTriggerBase + public class AsyncInitializePotentialDragTrigger : AsyncTriggerBase, IInitializePotentialDragHandler { AsyncTriggerPromise onInitializePotentialDrag; AsyncTriggerPromiseDictionary onInitializePotentialDrags; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnInitializePotentialDrag(PointerEventData eventData) + void IInitializePotentialDragHandler.OnInitializePotentialDrag(PointerEventData eventData) { TrySetResult(onInitializePotentialDrag, onInitializePotentialDrags, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncMoveTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncMoveTrigger.cs index 6066c8d..19d0f56 100644 --- a/Assets/UniRx.Async/Triggers/AsyncMoveTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncMoveTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncMoveTrigger : AsyncTriggerBase + public class AsyncMoveTrigger : AsyncTriggerBase, IMoveHandler { AsyncTriggerPromise onMove; AsyncTriggerPromiseDictionary onMoves; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnMove(AxisEventData eventData) + void IMoveHandler.OnMove(AxisEventData eventData) { TrySetResult(onMove, onMoves, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncPointerClickTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncPointerClickTrigger.cs index 5a9167a..b4ed576 100644 --- a/Assets/UniRx.Async/Triggers/AsyncPointerClickTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncPointerClickTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncPointerClickTrigger : AsyncTriggerBase + public class AsyncPointerClickTrigger : AsyncTriggerBase, IPointerClickHandler { AsyncTriggerPromise onPointerClick; AsyncTriggerPromiseDictionary onPointerClicks; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnPointerClick(PointerEventData eventData) + void IPointerClickHandler.OnPointerClick(PointerEventData eventData) { TrySetResult(onPointerClick, onPointerClicks, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncPointerDownTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncPointerDownTrigger.cs index 12cb568..aa6bc36 100644 --- a/Assets/UniRx.Async/Triggers/AsyncPointerDownTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncPointerDownTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncPointerDownTrigger : AsyncTriggerBase + public class AsyncPointerDownTrigger : AsyncTriggerBase, IPointerDownHandler { AsyncTriggerPromise onPointerDown; AsyncTriggerPromiseDictionary onPointerDowns; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnPointerDown(PointerEventData eventData) + void IPointerDownHandler.OnPointerDown(PointerEventData eventData) { TrySetResult(onPointerDown, onPointerDowns, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncPointerEnterTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncPointerEnterTrigger.cs index 2532079..179766d 100644 --- a/Assets/UniRx.Async/Triggers/AsyncPointerEnterTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncPointerEnterTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncPointerEnterTrigger : AsyncTriggerBase + public class AsyncPointerEnterTrigger : AsyncTriggerBase, IPointerEnterHandler { AsyncTriggerPromise onPointerEnter; AsyncTriggerPromiseDictionary onPointerEnters; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnPointerEnter(PointerEventData eventData) + void IPointerEnterHandler.OnPointerEnter(PointerEventData eventData) { TrySetResult(onPointerEnter, onPointerEnters, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncPointerExitTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncPointerExitTrigger.cs index 29063d4..4d0051e 100644 --- a/Assets/UniRx.Async/Triggers/AsyncPointerExitTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncPointerExitTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncPointerExitTrigger : AsyncTriggerBase + public class AsyncPointerExitTrigger : AsyncTriggerBase, IPointerExitHandler { AsyncTriggerPromise onPointerExit; AsyncTriggerPromiseDictionary onPointerExits; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnPointerExit(PointerEventData eventData) + void IPointerExitHandler.OnPointerExit(PointerEventData eventData) { TrySetResult(onPointerExit, onPointerExits, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncPointerUpTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncPointerUpTrigger.cs index 1eb0b92..11e5d66 100644 --- a/Assets/UniRx.Async/Triggers/AsyncPointerUpTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncPointerUpTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncPointerUpTrigger : AsyncTriggerBase + public class AsyncPointerUpTrigger : AsyncTriggerBase, IPointerUpHandler { AsyncTriggerPromise onPointerUp; AsyncTriggerPromiseDictionary onPointerUps; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnPointerUp(PointerEventData eventData) + void IPointerUpHandler.OnPointerUp(PointerEventData eventData) { TrySetResult(onPointerUp, onPointerUps, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncScrollTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncScrollTrigger.cs index 363a25a..6908ff9 100644 --- a/Assets/UniRx.Async/Triggers/AsyncScrollTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncScrollTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncScrollTrigger : AsyncTriggerBase + public class AsyncScrollTrigger : AsyncTriggerBase, IScrollHandler { AsyncTriggerPromise onScroll; AsyncTriggerPromiseDictionary onScrolls; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnScroll(PointerEventData eventData) + void IScrollHandler.OnScroll(PointerEventData eventData) { TrySetResult(onScroll, onScrolls, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncSelectTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncSelectTrigger.cs index 1a98f9d..ad4e99f 100644 --- a/Assets/UniRx.Async/Triggers/AsyncSelectTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncSelectTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncSelectTrigger : AsyncTriggerBase + public class AsyncSelectTrigger : AsyncTriggerBase, ISelectHandler { AsyncTriggerPromise onSelect; AsyncTriggerPromiseDictionary onSelects; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnSelect(BaseEventData eventData) + void ISelectHandler.OnSelect(BaseEventData eventData) { TrySetResult(onSelect, onSelects, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncSubmitTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncSubmitTrigger.cs index ff9b17d..22a00fa 100644 --- a/Assets/UniRx.Async/Triggers/AsyncSubmitTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncSubmitTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncSubmitTrigger : AsyncTriggerBase + public class AsyncSubmitTrigger : AsyncTriggerBase, ISubmitHandler { AsyncTriggerPromise onSubmit; AsyncTriggerPromiseDictionary onSubmits; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnSubmit(BaseEventData eventData) + void ISubmitHandler.OnSubmit(BaseEventData eventData) { TrySetResult(onSubmit, onSubmits, eventData); } diff --git a/Assets/UniRx.Async/Triggers/AsyncUpdateSelectedTrigger.cs b/Assets/UniRx.Async/Triggers/AsyncUpdateSelectedTrigger.cs index fcb81f6..025242c 100644 --- a/Assets/UniRx.Async/Triggers/AsyncUpdateSelectedTrigger.cs +++ b/Assets/UniRx.Async/Triggers/AsyncUpdateSelectedTrigger.cs @@ -10,7 +10,7 @@ using UnityEngine.EventSystems; namespace UniRx.Async.Triggers { [DisallowMultipleComponent] - public class AsyncUpdateSelectedTrigger : AsyncTriggerBase + public class AsyncUpdateSelectedTrigger : AsyncTriggerBase, IUpdateSelectedHandler { AsyncTriggerPromise onUpdateSelected; AsyncTriggerPromiseDictionary onUpdateSelecteds; @@ -22,7 +22,7 @@ namespace UniRx.Async.Triggers } - void OnUpdateSelected(BaseEventData eventData) + void IUpdateSelectedHandler.OnUpdateSelected(BaseEventData eventData) { TrySetResult(onUpdateSelected, onUpdateSelecteds, eventData); }