UnityのUNet代替のネットワークライブラリMirrorのNetworkTransformChildコンポーネントの使い方

下図のプレハブのようにネストしたゲームオブジェクトがあり、子ゲームオブジェクトのTransformを同期したい場合に

  • ルートゲームオブジェクトにNetworkIdentityをアタッチする
    • ルートオブジェクトのTransformを同期しない場合はNetworkTransform不要
  • ルートゲームオブジェクトにNetworkTransformChildをアタッチし、Targetに子ゲームオブジェクトを入れる。

この時、子ゲームオブジェクトを動かす時はif (isLocalPlayer)もしくはif (hasAuthority)を条件にしないと他プレイヤーも動いてしまう。
しかし子ゲームオブジェクトはNetworkBehaviourを継承したスクリプトをアタッチしても反映されないので以下のどちらかで制御する必要がある。

  • ルートゲームオブジェクトから子ゲームオブジェクトを制御する(下図のBodyスクリプトがこの方法)
  • 子ゲームオブジェクトからルートゲームオブジェクトのNetworkBehaviour.isLocalPlayerもしくはNetworkBehaviour.hasAuthorityを参照して制御する