質問: SteamVRとモノビットエンジン 現在VRシューティングゲームをオンライン化しているのですが、 MonobitAutoLoginTemplateを使わない、プログラミング・チュートリアル<オフラインゲームのオンライン化>の方法を使ったやり方が分かりません。 方法をご存じの方がいれば教えてください。 よろしくお願いします。
回答: SteamVRの場合、CameraRigに含まれる Camera(head), Controller(left), Controller(right)の3種を同期させればそれで充分なのですが、MonobitView は親オブジェクトにのみ設定する必要があるので、多少の手間をかける必要があります。 同期するオブジェクトに同期用のコンポーネントを追加する この部分を参考に、 1. Camera(head) に MonobitView, MonobitTransformView を追加。 2. Camera(head)の MonobitView の ObservedComponentList に Camera(head) の MonobitTransformView を追加 3. Camera(head) の MonobitView を Controller(left) に移動 4. Controller(left) に MonobitTransformView を追加 5. Controller(left) に移動した MonoibitView の ObservedComponentList に Controller(left) の MonobitTransformView を追加 6. Controller(left) の MonobitView を Controller(right) に移動 7. Controller(right) に MonobitTransformView を追加 8. Controller(right) に移動した MonoibitView の ObservedComponentList に Controller(right) の MonobitTransformView を追加 9. Controller(right) の MonobitView を CameraRig に移動 で MonobitView を CameraRigに置いた状態で、Camera(head), Controller(left), Controller(right) の3オブジェクトの位置同期が取れると思います。 あとは CameraRig 内に含まれる Camera(head) > Camera コンポーネントについて、複数オブジェクトが存在した場合無効化する必要があるので | class CameraManager : MonobitEngine.MonoBehaviour { public void OnMonobitInstantiate(MonobitEngine.MonobitMessageInfo info) { // プレハブ生成されたときに、自分自身のオブジェクトでない場合、 // 子オブジェクトのCameraを無効にする if( !info.monobitView.isMine ) { gameObject.GetComponentInChildlen().enabled = false; }} | を CameraRig のスクリプトとして組み込めば動くと思います。