public static UniRx.IObservable <T> Catch <T>(this UniRx.IObservable <T> source, Func <Exception, UniRx.IObservable <T> > onError) { return(Observable.Create(delegate(UniRx.IObserver <T> observer) { UniRx.IObservable <T> source2 = source; Action <T> onNext = delegate(T x) { observer.OnNext(x); }; Action <Exception> onError2 = delegate(Exception e) { UniRx.IObservable <T> source3 = onError(e); Action <T> onNext2 = delegate(T x) { observer.OnNext(x); }; UniRx.IObserver <T> observer3 = observer; Action <Exception> onError3 = observer3.OnError; UniRx.IObserver <T> observer4 = observer; source3.Subscribe(onNext2, onError3, observer4.OnCompleted); }; UniRx.IObserver <T> observer2 = observer; return source2.Subscribe(onNext, onError2, observer2.OnCompleted); })); }
public static void BindToInteractable(this Selectable selectable, UniRx.IObservable <bool> observable, ICollection <IDisposable> disposables = null) { if (disposables != null) { observable .Subscribe(enabled => { selectable.interactable = enabled; }) .AddTo(disposables); } else { observable .Subscribe(enabled => { selectable.interactable = enabled; }) .AddTo(selectable); } }
public static IDisposable SubscribeToText(this UniRx.IObservable <string> source, TextMesh text) { return(source.Subscribe(delegate(string x) { text.text = x; })); }
public void PlayVideoWithStartUrlAndPos(CustomController.VideoCtrl videoCtrl, FairyGUI.FillType fillType, UniRx.IObservable <Tuple <string, float> > videoPathAndStartPos, bool isFullView = false, bool autoVisible = true) { var g = gObject; var sub = videoPathAndStartPos.Subscribe((t) => { if (videoCtrl.IsInited && videoCtrl.LastUrl == t.Item1) { Debug.Log("$$ change second"); videoCtrl.SetSeconds(t.Item2); } if (videoCtrl.IsInited && videoCtrl.LastUrl != t.Item1) { Debug.Log("$$ change url old:" + videoCtrl.LastUrl + " new:" + t.Item1); videoCtrl.Rewind(true); videoCtrl.PlayVideoWithStartPos(t.Item1, t.Item2, autoVisible); } else if (!videoCtrl.IsInited) { Debug.Log("$$ init player"); videoCtrl.Init(g, fillType, isFullView); videoCtrl.PlayVideoWithStartPos(t.Item1, t.Item2, autoVisible); } }); uiBase.AddDisposable(sub); }
public static UniRx.IObservable <T> Previous <T>(this UniRx.IObservable <T> source) { return(Observable.Create(delegate(UniRx.IObserver <T> observer) { bool initialized = false; T newest = (T)default(T); UniRx.IObservable <T> source2 = source; Action <T> onNext = delegate(T x) { if (!initialized) { initialized = true; } else { observer.OnNext((T)newest); } newest = (T)x; }; UniRx.IObserver <T> observer2 = observer; Action <Exception> onError = observer2.OnError; UniRx.IObserver <T> observer3 = observer; return source2.Subscribe(onNext, onError, observer3.OnCompleted); })); }
public static IDisposable SubscribeToActive(this UniRx.IObservable <bool> source, GameObject go) { return(source.Subscribe(delegate(bool active) { go.SetActive(active); })); }
public void PlayClip(UniRx.IObservable <bool> o, float delay) { var g = gObject; g.SetPlaySettings(0, -1, 1, -1); g.playing = false; IDisposable subInner = null; var sub = o.Subscribe((b) => { g.visible = b; if (g.visible) { var d = Observable.Timer(TimeSpan.FromSeconds(delay)); subInner = d.Subscribe(num => { g.playing = true; g.frame = 0; Debug.Log("Play Clip"); }); } else { g.playing = false; g.frame = -1; } }); uiBase.AddDisposable(subInner); uiBase.AddDisposable(sub); }
public static void Name(this IUnirxBind s, UniRx.IObservable <string> o) { var sub = o.Subscribe((str) => { s.GetGObject().name = str; }); s.GetUIBase().AddDisposable(sub); }
public void Editable(UniRx.IObservable <bool> editable) { var g = gObject; var sub = editable.Subscribe((b) => { g.asTextInput.editable = b; }); uiBase.AddDisposable(sub); }
public void Title(UniRx.IObservable <string> title) { var g = gObject; var dis = title.Subscribe((str) => { g.title = str; }); this.uiBase.AddDisposable(dis); }
public void Touchable(UniRx.IObservable <bool> o) { var g = gObject; var sub = o.Subscribe((b) => { g.touchable = b; }); uiBase.AddDisposable(sub); }
public void SpriteIdx(UniRx.IObservable <int> index) { var g = gObject; var sub = index.Subscribe((idx) => { g.frame = idx; }); uiBase.AddDisposable(sub); }
public static void Alpha(this IUnirxBind s, UniRx.IObservable <float> alpha) { var g = s.GetGObject(); var sub = alpha.Subscribe((a) => { g.alpha = a; }); s.GetUIBase().AddDisposable(sub); }
public void SetSelectIndex(UniRx.IObservable <int> selectedIdx) { var g = gObject; var sub = selectedIdx.Subscribe((idx) => { g.selectedIndex = idx; }); uiBase.AddDisposable(sub); }
public void Text(UniRx.IObservable <string> text) { var g = gObject; var sub = text.Subscribe((str) => { g.text = str; }); uiBase.AddDisposable(sub); }
public void URL(UniRx.IObservable <string> url) { var g = gObject; var sub = url.Subscribe((str) => { g.url = str; }); uiBase.AddDisposable(sub); }
//TODO 设置进度 秒数 public void Seconds(CustomController.VideoCtrl videoCtrl, UniRx.IObservable <float> seconds) { var g = gObject; var sub = seconds.Subscribe((s) => { videoCtrl.SetSeconds(s); }); uiBase.AddDisposable(sub); }
public void PlayVideo(UniRx.IObservable <Texture> videoTexture) { var g = gObject; var sub = videoTexture.Subscribe((texture) => { g.texture = new FairyGUI.NTexture(texture); }); uiBase.AddDisposable(sub); }
public void Alpha(UniRx.IObservable <float> alpha) { var g = gObject; var sub = alpha.Subscribe((a) => { g.alpha = a; }); uiBase.AddDisposable(sub); }
public void Visible(UniRx.IObservable <bool> visible) { var g = gObject; var sub = visible.Subscribe((a) => { g.visible = a; }); uiBase.AddDisposable(sub); }
//[UIAttributes.UIBindPropertyInfo("name")] public void Name(UniRx.IObservable <string> o) { var g = gObject; var sub = o.Subscribe((str) => { g.name = str; }); uiBase.AddDisposable(sub); }
public void Gray(UniRx.IObservable <bool> gray) { var g = gObject; var sub = gray.Subscribe((v) => { g.grayed = v; }); uiBase.AddDisposable(sub); }
public void Editable(UniRx.IObservable <bool> editable) { var g = gObject; var sub = editable.Subscribe((b) => { g.richTextField.touchable = true; }); uiBase.AddDisposable(sub); }
public void StateIsSelectedDisabled(UniRx.IObservable <bool> isDisabled) { var g = gObject; var sub = isDisabled.Subscribe((b) => { if (b) { g.relatedController.SetSelectedPage("selectedDisabled"); } }); this.uiBase.AddDisposable(sub); }
//对任意控制器进行状态绑定 public static void State(this IRxComponent rxCom, string controllerName, UniRx.IObservable <int> state) { var sub = state.Subscribe((s) => { var controller = rxCom.GObject.asCom.GetController(controllerName); if (controller != null) { controller.SetSelectedIndex(s); } }); rxCom.UiBase.AddDisposable(sub); }
public static void Visible(this IUnirxBind s, UniRx.IObservable <bool> o, bool publish = false, bool initValue = false) { var sub = o.Subscribe((str) => { s.GetGObject().visible = str; }); if (publish) { s.GetGObject().visible = initValue; //o.Publish(initValue); } s.GetUIBase().AddDisposable(sub); }
public void StateIsDisabled(UniRx.IObservable <bool> isDisabled) { var g = gObject; var sub = isDisabled.Subscribe((b) => { var btnCtrl = g.GetController("button"); if (btnCtrl != null) { btnCtrl.SetSelectedIndex(b?2:0); } }); this.uiBase.AddDisposable(sub); }
public void Interactive(UniRx.IObservable <bool> interactive, bool hasDefaultValue = false, bool defaultValue = false) { var g = gObject; var sub = interactive.Subscribe((b) => { g.touchable = b; }); if (hasDefaultValue) { g.touchable = defaultValue; } this.uiBase.AddDisposable(sub); }
public void PostInit() { SceneLoader instance = SceneLoader.Instance; UniRx.IObservable <int> source = from i in (from runner in DelayedCurrentGoal select runner.GoalAction.CompletedStars).Switch() where i > 0 select i; source.Subscribe(delegate { NextTutorialGoal(); }).AddTo(instance); }
public static void Interactive(this IUnirxBind s, UniRx.IObservable <bool> interactive, bool hasDefaultValue = false, bool defaultValue = false) { var g = s.GetGObject(); var sub = interactive.Subscribe((b) => { g.touchable = b; }); if (hasDefaultValue) { g.touchable = defaultValue; } s.GetUIBase().AddDisposable(sub); }