【VR】SteamVR×モノビットエンジン【Unity】
SteamVRでモノビットエンジンを使う方法について
※SteamVR 1.0当時の内容です。2.0では若干変更があります
1.MUN(モノビット公式)とSteamVR Plugin(アセットストア)をインポートします
※一旦再生ボタンを押しておきます
SteamVRの初期設定についてはここでは省略します
2.[CameraRig]プレハブをシーンに入れ、「MainCamera」を非アクティブにします
3.ルーム入室用のスクリプトを用意します
空のGameObjectをシーンに作り、「MonobitAutoLoginTemplate」をAddComponentの「Monobit Networking Support」からアタッチします
4.プレイヤーを用意します
シーンに空のGameObjectを作り、「Player」という名前に変更します。
Assetsフォルダに「Resources」フォルダを作成し、先ほど作ったPlayerをD&Dしプレハブ化します。
シーン内のPlayerは削除します。
5.プレイヤープレハブをマルチ対応します
プレイヤープレハブに「MonobitView」コンポーネントをアタッチします
6.シーン上の「Monobit Auto Login Template」のPrefabにPlayerプレハブを指定します
7.「Monobit Auto Login Template」のスクリプトを変更します
プレハブにメインカメラを設定している個所の122~134行目をコメントアウトします。
8.マルチ確認用にPlayerプレハブにオブジェクトを追加します
プレイヤープレハブの子にCubeを追加し、Scaleを0.3くらいにします
9.プレイヤーブレハブに位置の同期をとるため「Monobit Transform View」をアタッチします
その後、プレイヤープレハブのMonobit Viewの監視リストに追加したMonobit Transform Viewを指定します
10.プレイヤープレハブにCameraの位置を取得するスクリプトを追加します
Playerスクリプトを作成し下記のようにします
using System.Collections; using System.Collections.Generic; using UnityEngine; using MonobitEngine; public class Player : MonobitEngine.MonoBehaviour { GameObject camera; void Start () { camera = GameObject.Find("Camera"); } void Update () { if(!monobitView.isMine) return; transform.position = camera.transform.position; transform.rotation = camera.transform.rotation; } }
11.複数クライアントで実行してみましょう
相手の頭の位置にキューブが表示され、動きが同期されていればOKです
手の位置を取得する場合は「Controller (left)」「Controller (right)」のtransformを取得すればOKです