+1 支持
(230 ポイント)

現在、複数人で通信プレイするゲームを作成しています。

Tips(3) : 「MonobitTransformView」「MonobitAnimatorView」よりも「OnMonobitSerializeView()」 を使った方が得策

という記事を読み、RPC通信で同期させていたプレイヤーのステータス情報を、OnMonobitSerializeViewで同期させようと思い、リファレンスと同じように作成してみたのですが、OnMonobitSerializeViewメソッド内に入らず、上手くいきません。

MonobitEngine.MonoBehaviourは継承しており、プレイヤーオブジェクトはMonobitViewを持ち、Prefab化して、ゲーム開始時に接続人数分の生成するようにしています。

MonobitView以外にUnity上で何か追加しておかなければならないMonobitEngineのComponentがあるのでしょうか?

使用しているバージョンは

Unity2018 3.3f1

Mun ver.2.6.1

です。初歩的な質問で大変恐縮ですが、解決策を教えていただけないでしょうか。

回答 1

+1 支持
(1.4k ポイント)
選択
 
ベストアンサー

追加しなければならないコンポーネントは MonobitView コンポーネントだけでよいのですが、MonobitView にある Observed Component List に、OnMOnobitSerializeView メソッドを記述したクラススクリプトを追加する必要があります。

MonobitViewコンポーネントの説明欄にある「Observed Component Registration List について」( http://www.monobitengine.com/doc/mun/contents/Component/MonobitView.htm#Observed%20Component%20Registration%20List%20%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

MonobitEngine.MonoBehaviourを継承したクラス

クラス内に定義された OnMonobitSerializeView() の処理内容に応じて、オブジェクトが同期されます。

OnMonobitSerializeView を機能させるための手順として、MonobitView コンポーネントを追加した後で、さらに以下の2工程が必要です。


手順1.
追加された MonobitView コンポーネント内にある「Add Observed Component List Column」のボタンを押す。

手順2.
項目が1つ増えるので、「None (Component)」と表示されているカラム内に、「OnMonobitSerializeView() メソッドを記述したクラススクリプト」をドラッグ&ドロップで追加する。

このようにすれば、OnMonobitSerializeView メソッドが機能すると思います。

(230 ポイント)
回答ありがとうございます。
MonobitViewコンポーネントのところを見落としてしまっていたのですね。教えていただいた通りに実装した結果、OnMonobitSerializeView メソッドが機能するようになりました。
ありがとうございました。
...