かりんちゃんの随心遊戯日誌

ゲームの日記、たまに政治の話、香港の話

UnityにDI・2

いま香港がただメッシの話題しかないことを見ると、やはり僕が知ってた香港はもういないなと再認識。こんなどうでもいいことがここまで騒いていると、まあ香港政府を含めて香港のイメージがただ下がりということに自覚はないかね

 

さて、今日もDI。VContainerの情報をもう少し調べていくと、やっと原理を掴み取れた。たぶん、昨日まで自分が思ってたこととは逆であっ。

もとよりUnity自体はMonoBehaviourでコードを作るのが普通なので、だからDIでは最初もMonoBehaviourにInjectすることと勘違いしてた。

しかしよく見ると発想は逆であった。そもそもMonoBehaviourから切り離すのが目的であり、MonoBehaviourが必要なときに(View)クラスにInjectするというのが本当のやり方であった。

それを勘違いしてたから、道理で昨日までうまく進めなかったわ…

 

しかしここをクリアしたらサクサクになってた。今日はどんどんDIコンテナ化の実装を進み、ほぼすべてのMonoBehaviourのコア処理をDIコンテナに改修しました。よく見たら、SerializeFieldや、一部の処理だけですね(例えばGameObjectの廃棄はどうやらMonoBehaviourなしではできない)、MonoBehaviour依存している。そことUIなどをMonoBehaviourに残し、ViewとしてDIコンテナにInjectするように改修した。

すると、かなり簡潔になっていた。なにより依存関係がめちゃスッキリした。

 

これでAPIを受け入れる土台ができました。