(Unity・Oculus)VR空間内でプレーヤーを動かす

(1)下準備

  • 簡易的なプレーヤーを作成する。

 

(2)スクリプトの作成

  • 今回は、
  • 「右コントローラのジョイスティック」で「前進・後退」
  • 「左コントローラのジョイスティック」で「横移動(横カニ移動)」
  • 「VR空間内で、視点を向けている方角に進める」
  • という構成にしてあります。

 

  • 新規に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<CharacterController>();
    }

    void Update()
    {
        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);
    }
}

(3)設定

  • Playerオブジェクトに「Character Controller」コンポーネントとスクリプトを追加
  • スピードは自由に設定
  • Camera Cの空欄には「Center Eye Anchor」オブジェクトをドラッグ&ドロップ

 

(4)ビルド&ラン

  • 設定が完了したらOculus Quest2にビルド&ラン
  • 右ジョイスティックで、顔を向けている方向に前進・後退
  • 左ジョイスティックで、横カニ移動ができれば成功です。