using System; using R3; using UnityEngine; namespace KitsuneCafe.SOAP { public class ReactiveEvent : ReactiveSource, IEvent { protected readonly ISubject onRaise = new Subject(); public override Observable AsObservable() => (Observable)onRaise; public virtual void Raise(T value) { onRaise.OnNext(value); } private void OnDestroy() { onRaise.OnCompleted(); ((IDisposable)onRaise).Dispose(); } } }