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; }