<体部分の作成>
- 新規に「Capsule」を作成

- 名前を「Body」に変更
- Positionは「0,0,0」に設定

<頭部分の作成>
- 「OVRCameraRig」を1つ設置
- 右クリック→「Unpack Prefab Completely」をクリック

- 「Position」は「00,0,」に設定

- 「Main Camera」は使用しないので削除

<親子関係で体と頭を一体化>
- 新規に「Create Empty」を作成

- 名前を「Player」に変更
- 「Position」は「0,0,0」に設定

- 「OVRCameraRig」の「Position Y」を「1.5」に変更

- 「Body」と「OVRCameraRig」を「Player」の子供に設定

- 「Player」の「Position Y」を「-1.5」に変更

- 地面に設置していることを確認

<Playerを動かす>
(スクリプトの作成)
- 新規にC#スクリプトを作成
- 名前を「PlayerMovement」に変更
- 下記のコードを書いてチェック
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed;
private Vector3 movement;
private CharacterController controller;
public GameObject cameraC;
private Vector3 moveDir = Vector3.zero;
private float gravity = 9.8f;
private float moveH;
private float moveV;
void Start()
{
controller = GetComponent();
}
void Update()
{
// PC上の動作確認用
if(Application.isEditor)
{
moveH = Input.GetAxis("Horizontal");
moveV = Input.GetAxis("Vertical");
}
// Oculus Quest2で動かす
else
{
moveH = OVRInput.Get(OVRInput.RawAxis2D.LThumbstick).x;
moveV = OVRInput.Get(OVRInput.RawAxis2D.RThumbstick).y;
}
movement = new Vector3(moveH, 0, moveV);
Vector3 desiredMove = cameraC.transform.forward * movement.z + cameraC.transform.right * movement.x;
moveDir.x = desiredMove.x * 3f;
moveDir.z = desiredMove.z * 3f;
moveDir.y -= gravity * Time.deltaTime;
controller.Move(moveDir * Time.deltaTime * speed);
}
}
(設定)
- スクリプトを「Player」に追加
- 「Speed」(移動速度)は自由に設定
- 「CameraC」の空欄には「Center Eye Anchor」を設定

- 「Player」に「Character Controller」コンポーネントを追加する。

(PC上で確認)
- 設定が完了したらゲーム再生
- キーボドの十字キーで、「前進」「後退」「横カニ歩き移動」ができれば成功です。

(Oculus Quest2で確認)
- Oculus Quest2と繋いで、「Build And Run」
- 左コントローラの親指スティックで「横カニ歩き移動」
- 右コントローラの親指スティックで「前進」「後退」ができれば成功です。