public static IDisposable BindTriggerTo(this Animator input, int parameter, IReactiveProperty <bool> property, params IFilter <bool>[] filters)
 {
     return(property
            .ApplyInputFilters(filters)
            .DistinctUntilChanged(x => x)
            .Subscribe(x =>
     {
         input.SetTrigger(parameter);
         property.Value = false;
     }).AddTo(input));
 }
Exemplo n.º 2
0
        public static IDisposable Bind <T>(IReactiveProperty <T> propertyA, IReactiveProperty <T> propertyB, BindingTypes bindingTypes = BindingTypes.Default, params IFilter <T>[] filters)
        {
            var propertyBBinding = propertyB
                                   .ApplyInputFilters(filters)
                                   .DistinctUntilChanged()
                                   .Subscribe(x => propertyA.Value = x);

            if (bindingTypes == BindingTypes.OneWay)
            {
                return(propertyBBinding);
            }

            var propertyABinding = propertyA
                                   .ApplyOutputFilters(filters)
                                   .DistinctUntilChanged()
                                   .Subscribe(x => propertyB.Value = x);

            return(new CompositeDisposable(propertyABinding, propertyBBinding));
        }
Exemplo n.º 3
0
        public static IDisposable Bind <T>(Func <T> propertyAGetter, Action <T> propertyASetter, IReactiveProperty <T> propertyB, BindingTypes bindingTypes = BindingTypes.Default, params IFilter <T>[] filters)
        {
            var propertyBBinding = propertyB
                                   .ApplyInputFilters(filters)
                                   .DistinctUntilChanged()
                                   .Subscribe(propertyASetter);

            if (bindingTypes == BindingTypes.OneWay)
            {
                return(propertyBBinding);
            }

            var propertyABinding = Observable.EveryUpdate()
                                   .Select(x => propertyAGetter())
                                   .ApplyOutputFilters(filters)
                                   .DistinctUntilChanged()
                                   .Subscribe(x => propertyB.Value = propertyAGetter());

            return(new CompositeDisposable(propertyABinding, propertyBBinding));
        }