mirror of
https://github.com/Cysharp/UniTask.git
synced 2026-05-20 14:37:17 +00:00
ok all
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
namespace System.Runtime.CompilerServices
|
||||
{
|
||||
public sealed class AsyncMethodBuilderAttribute : Attribute
|
||||
internal sealed class AsyncMethodBuilderAttribute : Attribute
|
||||
{
|
||||
public Type BuilderType { get; }
|
||||
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Reflection;
|
||||
using System.Runtime.ExceptionServices;
|
||||
using System.Threading;
|
||||
using UniRx.Async.Internal;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniRx.Async
|
||||
{
|
||||
@@ -57,7 +59,7 @@ namespace UniRx.Async
|
||||
return;
|
||||
}
|
||||
|
||||
this.innerEnumerator = innerEnumerator;
|
||||
this.innerEnumerator = ConsumeEnumerator(innerEnumerator);
|
||||
this.status = AwaiterStatus.Pending;
|
||||
this.cancellationToken = cancellationToken;
|
||||
this.continuation = null;
|
||||
@@ -142,6 +144,108 @@ namespace UniRx.Async
|
||||
Error.ThrowWhenContinuationIsAlreadyRegistered(this.continuation);
|
||||
this.continuation = continuation;
|
||||
}
|
||||
|
||||
// Unwrap YieldInstructions
|
||||
|
||||
static IEnumerator ConsumeEnumerator(IEnumerator enumerator)
|
||||
{
|
||||
while (enumerator.MoveNext())
|
||||
{
|
||||
var current = enumerator.Current;
|
||||
if (current == null)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
else if (current is CustomYieldInstruction)
|
||||
{
|
||||
// WWW, WaitForSecondsRealtime
|
||||
var e2 = UnwrapWaitCustomYieldInstruction((CustomYieldInstruction)current);
|
||||
while (e2.MoveNext())
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
else if (current is YieldInstruction)
|
||||
{
|
||||
IEnumerator innerCoroutine = null;
|
||||
switch (current)
|
||||
{
|
||||
case AsyncOperation ao:
|
||||
innerCoroutine = UnwrapWaitAsyncOperation(ao);
|
||||
break;
|
||||
case WaitForSeconds wfs:
|
||||
innerCoroutine = UnwrapWaitForSeconds(wfs);
|
||||
break;
|
||||
}
|
||||
if (innerCoroutine != null)
|
||||
{
|
||||
while (innerCoroutine.MoveNext())
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
else if (current is IEnumerator e3)
|
||||
{
|
||||
while (e3.MoveNext())
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// WaitForEndOfFrame, WaitForFixedUpdate, others.
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WWW and others as CustomYieldInstruction.
|
||||
static IEnumerator UnwrapWaitCustomYieldInstruction(CustomYieldInstruction yieldInstruction)
|
||||
{
|
||||
while (yieldInstruction.keepWaiting)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
static readonly FieldInfo waitForSeconds_Seconds = typeof(WaitForSeconds).GetField("m_Seconds", BindingFlags.Instance | BindingFlags.GetField | BindingFlags.NonPublic);
|
||||
|
||||
static IEnumerator UnwrapWaitForSeconds(WaitForSeconds waitForSeconds)
|
||||
{
|
||||
var second = (float)waitForSeconds_Seconds.GetValue(waitForSeconds);
|
||||
var startTime = DateTimeOffset.UtcNow;
|
||||
while (true)
|
||||
{
|
||||
yield return null;
|
||||
|
||||
var elapsed = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
|
||||
if (elapsed >= second)
|
||||
{
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
static IEnumerator UnwrapEnumerator(IEnumerator enumerator)
|
||||
{
|
||||
while (enumerator.MoveNext())
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
static IEnumerator UnwrapWaitAsyncOperation(AsyncOperation asyncOperation)
|
||||
{
|
||||
while (!asyncOperation.isDone)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnAnimatorIKAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<int> OnAnimatorIKAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onAnimatorIK, ref onAnimatorIKs, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnBeginDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnBeginDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onBeginDrag, ref onBeginDrags, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCancelAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnCancelAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCancel, ref onCancels, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCollisionEnter2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collision2D> OnCollisionEnter2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCollisionEnter2D, ref onCollisionEnter2Ds, cancellationToken);
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCollisionExit2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collision2D> OnCollisionExit2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCollisionExit2D, ref onCollisionExit2Ds, cancellationToken);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCollisionStay2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collision2D> OnCollisionStay2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCollisionStay2D, ref onCollisionStay2Ds, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCollisionEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collision> OnCollisionEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCollisionEnter, ref onCollisionEnters, cancellationToken);
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCollisionExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collision> OnCollisionExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCollisionExit, ref onCollisionExits, cancellationToken);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCollisionStayAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collision> OnCollisionStayAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCollisionStay, ref onCollisionStays, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnDeselectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnDeselectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onDeselect, ref onDeselects, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onDrag, ref onDrags, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnDropAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnDropAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onDrop, ref onDrops, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnEndDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnEndDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onEndDrag, ref onEndDrags, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnDeselectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnDeselectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onDeselect, ref onDeselects, cancellationToken);
|
||||
}
|
||||
@@ -71,7 +71,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnMoveAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<AxisEventData> OnMoveAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onMove, ref onMoves, cancellationToken);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerDownAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerDownAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerDown, ref onPointerDowns, cancellationToken);
|
||||
}
|
||||
@@ -95,7 +95,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerEnter, ref onPointerEnters, cancellationToken);
|
||||
}
|
||||
@@ -107,7 +107,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerExit, ref onPointerExits, cancellationToken);
|
||||
}
|
||||
@@ -119,7 +119,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerUpAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerUpAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerUp, ref onPointerUps, cancellationToken);
|
||||
}
|
||||
@@ -131,7 +131,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnSelectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnSelectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onSelect, ref onSelects, cancellationToken);
|
||||
}
|
||||
@@ -143,7 +143,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerClickAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerClickAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerClick, ref onPointerClicks, cancellationToken);
|
||||
}
|
||||
@@ -155,7 +155,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnSubmitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnSubmitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onSubmit, ref onSubmits, cancellationToken);
|
||||
}
|
||||
@@ -167,7 +167,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onDrag, ref onDrags, cancellationToken);
|
||||
}
|
||||
@@ -179,7 +179,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnBeginDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnBeginDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onBeginDrag, ref onBeginDrags, cancellationToken);
|
||||
}
|
||||
@@ -191,7 +191,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnEndDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnEndDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onEndDrag, ref onEndDrags, cancellationToken);
|
||||
}
|
||||
@@ -203,7 +203,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnDropAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnDropAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onDrop, ref onDrops, cancellationToken);
|
||||
}
|
||||
@@ -215,7 +215,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnUpdateSelectedAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnUpdateSelectedAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onUpdateSelected, ref onUpdateSelecteds, cancellationToken);
|
||||
}
|
||||
@@ -227,7 +227,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnInitializePotentialDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnInitializePotentialDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onInitializePotentialDrag, ref onInitializePotentialDrags, cancellationToken);
|
||||
}
|
||||
@@ -239,7 +239,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnCancelAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnCancelAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onCancel, ref onCancels, cancellationToken);
|
||||
}
|
||||
@@ -251,7 +251,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnScrollAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnScrollAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onScroll, ref onScrolls, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnInitializePotentialDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnInitializePotentialDragAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onInitializePotentialDrag, ref onInitializePotentialDrags, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnJointBreakAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<float> OnJointBreakAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onJointBreak, ref onJointBreaks, cancellationToken);
|
||||
}
|
||||
@@ -42,7 +42,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnJointBreak2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Joint2D> OnJointBreak2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onJointBreak2D, ref onJointBreak2Ds, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnMoveAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<AxisEventData> OnMoveAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onMove, ref onMoves, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnParticleCollisionAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<GameObject> OnParticleCollisionAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onParticleCollision, ref onParticleCollisions, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerClickAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerClickAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerClick, ref onPointerClicks, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerDownAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerDownAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerDown, ref onPointerDowns, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerEnter, ref onPointerEnters, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerExit, ref onPointerExits, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnPointerUpAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnPointerUpAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onPointerUp, ref onPointerUps, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnScrollAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<PointerEventData> OnScrollAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onScroll, ref onScrolls, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnSelectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnSelectAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onSelect, ref onSelects, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnSubmitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnSubmitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onSubmit, ref onSubmits, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnTriggerEnter2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collider2D> OnTriggerEnter2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onTriggerEnter2D, ref onTriggerEnter2Ds, cancellationToken);
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnTriggerExit2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collider2D> OnTriggerExit2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onTriggerExit2D, ref onTriggerExit2Ds, cancellationToken);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnTriggerStay2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collider2D> OnTriggerStay2DAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onTriggerStay2D, ref onTriggerStay2Ds, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnTriggerEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collider> OnTriggerEnterAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onTriggerEnter, ref onTriggerEnters, cancellationToken);
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnTriggerExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collider> OnTriggerExitAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onTriggerExit, ref onTriggerExits, cancellationToken);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnTriggerStayAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<Collider> OnTriggerStayAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onTriggerStay, ref onTriggerStays, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace UniRx.Async.Triggers
|
||||
}
|
||||
|
||||
|
||||
public UniTask OnUpdateSelectedAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
public UniTask<BaseEventData> OnUpdateSelectedAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
return GetOrAddPromise(ref onUpdateSelected, ref onUpdateSelecteds, cancellationToken);
|
||||
}
|
||||
|
||||
@@ -168,13 +168,16 @@ namespace UniRx.Async
|
||||
}
|
||||
}
|
||||
|
||||
asyncOperation = null; // remove reference.
|
||||
|
||||
if (continuationAction != null)
|
||||
{
|
||||
asyncOperation.completed -= continuationAction;
|
||||
asyncOperation = null; // remove reference.
|
||||
continuationAction = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
asyncOperation = null; // remove reference.
|
||||
}
|
||||
}
|
||||
|
||||
public void OnCompleted(Action continuation)
|
||||
@@ -316,13 +319,17 @@ namespace UniRx.Async
|
||||
}
|
||||
|
||||
this.result = asyncOperation.asset;
|
||||
asyncOperation = null; // remove reference.
|
||||
|
||||
if (continuationAction != null)
|
||||
{
|
||||
asyncOperation.completed -= continuationAction;
|
||||
asyncOperation = null; // remove reference.
|
||||
continuationAction = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
asyncOperation = null; // remove reference.
|
||||
}
|
||||
|
||||
return this.result;
|
||||
}
|
||||
@@ -576,13 +583,18 @@ namespace UniRx.Async
|
||||
}
|
||||
|
||||
this.result = asyncOperation.webRequest;
|
||||
asyncOperation = null; // remove reference.
|
||||
|
||||
if (continuationAction != null)
|
||||
{
|
||||
asyncOperation.completed -= continuationAction;
|
||||
asyncOperation = null; // remove reference.
|
||||
continuationAction = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
asyncOperation = null; // remove reference.
|
||||
}
|
||||
|
||||
|
||||
return this.result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user