LoginSignup
4

More than 5 years have passed since last update.

UniRx: ReactivePropertyが変更を検知できないクラスをそれでもそのまま使う方法

Posted at

UniRxのReactivePropertyが変更を検知できないクラスをなんとかそのまま使えないかと調べてみたところ、手動でイベントを発行する方法がありました。

本当はReactivePropertyでこう書きたかった

が、変更を検知できないので無理。

public ReactiveProperty<Unit> Hero { get; private set; }

Subjectを使って書き換える

Subjectを使って手動で発行できました。
こんな感じで宣言しておいて

public Subject<Unit> HeroStream = new Subject<Unit>();
public Unit Hero{ get; private set; }

自分でイベントを発行します。

public void NewHero() {
    var Hero = new Hero();
    HeroStream.OnNext(Hero);
}

受信側

イベントを受け取る側の書き方はReactivePropertyのときと同じです。

Mediator.HeroStream
        .Subscribe(hero=> View.Reflesh(hero));

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4