質問: value; OnChangeMenuType(); } } // MenuType変更時に呼び出す関数 void OnChangeMenuType(){ ... } ``` 上記のようにプロパティで実現は出来るのですが、 * クラス内でtype変数に直接代入されると検知出来ない * 作成中のプロジェクトで検知処理は基本的にUniRxを利用していて、出来れば統一したい という理由があり、UniRxでシンプルに書けないかな、と思った次第です。 `ReactiveProperty`クラスを参考に、Valueのset時に同値の場合でも通知するクラスを自作すれば出来そうではあるのですが、今までUniRxを触った感じ自作せずともシンプルに書けるやり方があったりするのでは、と思い質問させて頂きました。
回答: こんにちは。 UniRxのソースを今見てみた程度の知識ですが、 ReactivePropertyのソース(これ?)を見る限り、setのタイミングでEqualityComparerによる一致判定を行っているようです。肝心のEqualityComparerはprotected virtualなプロパティとして定義されているので、これを「何が来ても常にfalseを返すIEqualityComparerを自前で用意して、ReactivePropertyを継承しそれを使うようにオーバーライドする」で目的の動作を実現出来る......んじゃないかなあ、と思います。