はじめに
今回はUnity×MessagePipeを組み合わせて、値を監視する機能を作りました。
ゲームロジックとデバッグ機能を完全に分離するためにMessagePipeを使った設計を想定しております。
また、デバッグ情報はゲームの途中で使用したいのでプレハブを生成して値を監視する方法として作成いたしました。
記事で公開する内容は下記のリポジトリで公開しております。
https://github.com/KensukeStudent/MessagePipeTest
MessagePipeについて
Messagepipeについてのことは他の記事でたくさん方が公開していますのでそちらをご覧ください。
MessagepipeはVContainerを元に作られているので、まずはVContainerを学習する方が理解しやすいと思います。
参考にしやすいサイト
MessagePipe
VContainer
本題
今回作った機能は、更新されるステータスが登録されたら画面に数値が表示されるものを作りました。
ゲームで言うとバフ・デバフの分量を確認するためのものとなります。
設計としては下図のような形で
・UiManagerのGameLifetimeScopeで生成したプレハブが送受信できるようにInject関数を使用して生成
・UiController側で値を監視
・Character側で値を送信
下記の動画は実行結果になります。
ボタンを押した後にUiController側のテキストにCharacterクラスから送信されるデータが随時更新されているのを確認できると思います。
最後に
MessagePipeを使用して、生成したプレハブを監視する情報が見当たらなかったので代わりに調査して実装してみました。
何かあれば参考になればと思います。