UniRx
UniRx copied to clipboard
Reactive Extensions for Unity
example: ```cs private IEnumerator Work1() { yield return null; yield return Work2(); } private IEnumerator Work2() { yield return null; throw new Exception(); } void Test() { Debug.LogError("test begin."); Observable.FromCoroutine(Work1).Subscribe(...
Merging operators (`Merge`, `Switch`, and `SelectMany`) have three-class hierarchy (e.g. `SelectManyObservable`, `SelectManyOuterObserver`, `SelectMany`). When `innerSource` invokes `OnError` of the inner class (for instance, `SelectMany`), the inner class calls `observer.OnError` and...
this fixes #350 . Merging operators (Merge, Switch, and SelectMany) doesn't dispose parent subscription when inner subscription calls OnError, and this causes some odd behaviours. - this is different from...
`ObserveOn(Scheduler.Immediate)` causes an infinite loop. ```cs // Sample var subject = new Subject(); var observable = subject.ObserveOn(Scheduler.Immediate); observable .Where(x => x == 0) .Subscribe(_ => subject.OnNext(1)); subject.OnNext(0); // ! subject.OnCompleted();...
I wonder if I could get a better callstack/stacktrace to detect where the change did happen. It goes since MainThreadDispatcher, but I want to know the place where a transform...
Here is my code: using UnityEngine; using System.Threading.Tasks; using UniRx.Async; public class Test : MonoBehaviour { private Task task = Task.CompletedTask; private UniTask uniTask = UniTask.CompletedTask; private async void Start()...
I am trying to limit so my health doesn't go below 0, this is what I've done so far. ``` [SerializeField] private IntReactiveProperty health = new IntReactiveProperty(MaxHealth); public IntReactiveProperty Health...
Currently Tuples are not handled so great. For example I can subscribe to an IObservable like this ``` observable.Subscribe( ((int, int) tuple) => Console.WriteLine(tuple.Item1 + tuple.Item2) ); ``` With the...
https://github.com/neuecc/UniRx/blob/aa3b6d3e30354c25f5ee276d19be4f5ff7d7a82c/Assets/Plugins/UniRx/Scripts/Schedulers/Scheduler.cs#L76
eg. ``` public class Demo : MonoBehaviour { ReactiveCollection RCInts; // Start is called before the first frame update void Start() { foreach(var elem in RCInts) { func(elem) } RCInts.ObserveAdd().Subscribe(x...