0 支持
(140 ポイント)
サンプルプログラムを参考に、prefabをMonobitNetwork.Instantiateするプログラムを作りました。概ねうまく動くのですが、ひとつ不思議な現象があります。それは、MonobitNetwork.Instantiateする対象のprefabにMonobitPlayerMoveTemplateがコンポーネントとして存在するかどうかで振る舞いが異なることです。Key and Anim Settings List は空で、しかもenableしない状態でMonobitPlayerMoveTemplateを貼っておくと、うまく同期してくれるのですが、このコンポーネントを外すと同期が動かなくなります。実用上はそれほど困らないのですが、理由を知りたくなりました。もしくは使い方の問題かもしれません。アドバイスいただければ幸いです。

回答 1

0 支持
(4k ポイント)
編集
Assets/Monobit Unity Networking/Support/Editor/MonobitPlayerMoveTemplateEditor.cs

このスクリプト内に答えがありますが、このスクリプト内の OnInspectorGUI() メソッドで、MonobitView の ObservedComponentList に MonobitTransformView とMonobitAnimatorView を自動追加しています(と、コメントが書いてある)。

そのため、「MonobitPlayerMoveTempleteがUnityEditor上に存在している限り(OnInspectorGUIがコールされる限り)」では、enable する/しないに関わらず位置とアニメーションの同期が行われます。

ご推察の通り、コンポーネントを外すと同期しなくなる仕組みです(上述のOnInspectorGUI()がコールされなくなるので)。多分バイナリ実行ファイルでの実行などの「UnityEditor上で動かさない場合」だと、同じ理由で同期しなくなるはずです。
(140 ポイント)
なるほどー。とりあえずスッキリしました。
...