예제 #1
0
 public WaitUntilValueChangedPromise(T target, Func <T, U> monitorFunction, IEqualityComparer <U> equalityComparer, CancellationToken cancellation)
 {
     this.target           = target;
     this.monitorFunction  = monitorFunction;
     this.equalityComparer = equalityComparer ?? UniRxAsyncDefaultEqualityComparer.GetDefault <U>();
     this.initialValue     = monitorFunction(target);
     this.cancellation     = cancellation;
 }
 public WaitUntilValueChangedUnityObjectPromise(T target, Func <T, U> monitorFunction, PlayerLoopTiming timing, IEqualityComparer <U> equalityComparer, CancellationToken cancellation)
 {
     this.target           = target;
     this.monitorFunction  = monitorFunction;
     this.equalityComparer = equalityComparer ?? UniRxAsyncDefaultEqualityComparer.GetDefault <U>();
     this.currentValue     = monitorFunction(target);
     this.cancellation     = cancellation;
     this.timing           = timing;
 }
 public WaitUntilValueChangedStandardObjectPromise(T target, Func <T, U> monitorFunction, PlayerLoopTiming timing, IEqualityComparer <U> equalityComparer, CancellationToken cancellation)
 {
     // use WeakReference, but maybe target was referenced by async-statemachine so always referenced...
     this.target           = new WeakReference <T>(target);
     this.monitorFunction  = monitorFunction;
     this.equalityComparer = equalityComparer ?? UniRxAsyncDefaultEqualityComparer.GetDefault <U>();
     this.currentValue     = monitorFunction(target);
     this.cancellation     = cancellation;
     this.timing           = timing;
 }