[Unity] UniRxを使ったマルチシーンの利用方法を考えたけど微妙だった

お世話になっております。
しゃまとんです。

今回は、UniRxを使ったマルチシーンの利用方法について考えていてやってみたけど微妙になってしまった話です。

最近はZenjectがいいという話からちょっと触ってみたりしているのですが、やっぱマルチシーンの初期化時に引数的なものを渡して何かしたいよねと思っていたのが発端でググるとneueccさんの記事がヒットするので、それを参考にもう少し扱いやすくできないかなぁと実装してみました。

Unity 5.3のMulti Scene EditingをUniRxによるシーンナビゲーションで統合する

詳しい処理の流れは上記記事を参考にしていただくとして、変更した点は

・GameObject.FindObjectOfTypeはジェネリック変数Tで行う
→ シーンを複数同時に読んだときに引数がアレしそう
・Argをobject asしないようにした
→ 毎回 as がめんどくさげ

2点で理由は書いたとおりです。

で…. Argに何でもつっこめて勝手に動作して最高だぜ!と思って使っていたのですが、とりあえず使ってみるとコードの読みづらさや、あれ…ここ同期まちさせたい…というような状況になり、うーーーーん後から見返したときにやばそうとなった次第です。

簡単なサンプルを含めたコードはこんな感じです。

挙動例はこれ。

もっと理解していたらきれいに使えるかもなんですが、今はちょっとなーという感じになってしまいました。一旦はシンプルな使い方にとどめておこうかと思います。

以上です。