Пример #1
0
 public static IObservable <T> AsObservable <T>(this UnityEngine.Events.UnityEvent <T> unityEvent)
 {
     return(Observable.FromEvent <UnityAction <T>, T>(h => new UnityAction <T>(h), h => unityEvent.AddListener(h), h => unityEvent.RemoveListener(h)));
 }
Пример #2
0
 public static IObservable <Tuple <T0, T1, T2, T3> > AsObservable <T0, T1, T2, T3>(this UnityEngine.Events.UnityEvent <T0, T1, T2, T3> unityEvent)
 {
     return(Observable.FromEvent <UnityAction <T0, T1, T2, T3>, Tuple <T0, T1, T2, T3> >(
                h => (t0, t1, t2, t3) => h(Tuple.Create(t0, t1, t2, t3)),
                h => unityEvent.AddListener(h), h => unityEvent.RemoveListener(h)));
 }
Пример #3
0
        static void EventAotCheck2()
        {
            var test = new EventTestesr();

            {
                var isRaised = false;
                var d        = Observable.FromEvent <EventHandler, EventArgs>(
                    h => (sender, e) => h.Invoke(e),
                    h => test.Event1                   += h, h => test.Event1 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(1);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(1);
                Console.WriteLine(isRaised == false);
            }

            {
                var isRaised = false;
                var d        = Observable.FromEvent <EventHandler <MyEventArgs>, MyEventArgs>(
                    h => (sender, e) => h.Invoke(e),
                    h => test.Event2                   += h, h => test.Event2 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(2);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(2);
                Console.WriteLine(isRaised == false);
            }

            {
                var isRaised = false;
                var d        = Observable.FromEvent <MyEventHandler, MyEventArgs>(
                    h => (sender, e) => h.Invoke(e),
                    h => test.Event3                   += h, h => test.Event3 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(3);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(3);
                Console.WriteLine(isRaised == false);
            }

            {
                var isRaised = false;
                var d        = Observable.FromEvent <Action, Unit>(
                    h => () => h(Unit.Default),
                    h => test.Event4                   += h, h => test.Event4 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(4);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(4);
                Console.WriteLine(isRaised == false);
            }

            // shortcut
            {
                var isRaised = false;
                var d        = Observable.FromEvent(
                    h => test.Event4                   += h, h => test.Event4 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(4);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(4);
                Console.WriteLine(isRaised == false);
            }

            {
                var isRaised = false;
                var d        = Observable.FromEvent <Action <int>, int>(
                    h => h,
                    h => test.Event5                   += h, h => test.Event5 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(5);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(5);
                Console.WriteLine(isRaised == false);
            }

            // shortcut
            {
                var isRaised = false;
                var d        = Observable.FromEvent <int>(
                    h => test.Event5                   += h, h => test.Event5 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(5);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(5);
                Console.WriteLine(isRaised == false);
            }

            {
                var isRaised = false;
                var d        = Observable.FromEvent <Action <int, string>, Tuple <int, string> >(
                    h => (x, y) => h(Tuple.Create(x, y)),
                    h => test.Event6                   += h, h => test.Event6 -= h)
                               .Subscribe(x => isRaised = true);
                test.Fire(6);
                Console.WriteLine(isRaised);
                isRaised = false;
                d.Dispose();
                test.Fire(6);
                Console.WriteLine(isRaised == false);
            }
        }
Пример #4
0
 public static IObservable <Unit> AsObservable(this UnityEngine.Events.UnityEvent unityEvent)
 {
     return(Observable.FromEvent <UnityAction>(h => h.Invoke, h => unityEvent.AddListener(h), h => unityEvent.RemoveListener(h)));
 }