こんにちは!Aiming ソフトウェアエンジニアの栗本です。 AimingではUnityでのイベントハンドリングや非同期タスクの処理に UniRx というライブラリを使っています。 UniRxとは Rx (Reactive Extensions) という仕組みをUnityで扱うためのライブラリです。 これを使うことで、イベントと非同期タスクを IObservable という共通のインターフェースにし、 Linq と似たオペレーターを使うことができるようになります。 Rxを利用すると、従来ではコールバックの入れ子になってしまうようなコードを宣言的に記述することができるようになり、大変便利です。 正しく扱えば強力なRxですが、しかし一歩間違えば「リアクティブスパゲティ」と呼ばれる、コールバックが複雑に入り組む危険なコードを書いてしまいやすいという問題があります。 今回の記事では、この「リアクテ