困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

UniRxの話~DistinctUntilChangedとSkip~

キーワードは、初回にSubscribeさせたくない時。

以下のコードがある。想定したい挙動は、何も表示されないだ。
countの変更をどこにも書いていないからである。

int count = 0;
this.UpdateAsObservable()
    .Select(_ => count)
    .DistinctUntilChanged()
    .Subscribe(_ => Debug.Log("Count:" + count));

しかし、実際は、ばっちりログに0と表示される。

なので、初回のSubscribeを止めたい時は、Skipという物を使うと行けるっぽい。

int count = 0;
this.UpdateAsObservable()
    .Select(_ => count)
    .DistinctUntilChanged()
    .Skip(1)// ここに追加。
    //.Where(x => x)
    .Subscribe(_ => Debug.Log("Count:" + count));

これで、呼び出されなくなった。
もっといいやり方があるのかもしれないけど、とりあえず使う分にはこんなところだろうか。