【Oculus Integration】開発メモ


M1 MacでOculus Integrationを入れると落ちる場合の解決方法

Assets/Standard Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle
を削除する

参考: https://forum.unity.com/threads/macbook-pro-m1-oculus-crash.1017730/

UI Interactionの方法

  • UI CanvasにOVR Raycasterコンポーネントをアタッチします。
  • UI CanvasのGraphic Raycasterコンポーネントを削除します。

  • UI Canvasを追加した際に同時に追加された、EventSystemオブジェクトを削除します。

  • プロジェクトからUIHelperPrefabをシーンに追加します。

  • UI HelperEventSystemにあるOVR Input ModuleコンポーネントのRay Trasformに使用するコントローラー(Right Hand AnchorまたはLeft Hand Anchor)をドラッグ&ドロップします。

  • Joy Pad Click ButtonをTrigger Buttonにしたい場合、右コントローラの場合はSecondary Index Trigger, 左コントローラーの場合はPrimary Index Triggerを設定します。

  • もし、ポインタまでの軌跡を表示させたい場合には、UI HelperLine Rendererコンポーネントをenableにします。

Controllerを表示する (1)

Prefabsフォルダーの中のOVRControllerPrefabControllerAnchorの下に追加します。そして、対応するように、Inspector内にある項目で、ControllerL Louchまたは、R Louchを設定します。

HandControllerを表示する

Prefabsフォルダーの中のOVRCustomHandLeftLeftHandAnchorに、OVRCustomHandRightRightHandAnchorにアタッチします。
(どちらがいいのかは、わからない)

Controllerの入力を受け取る

OVRPlayerControllerOVRInputListener.csをアタッチし、そこで全てのボタンに対する操作を記述していきます。

void Update()
{
if (OVRInput.GetDown(OVRInput.RawButton.A))
{
    Debug.Log("Aボタンを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.B))
{
    Debug.Log("Bボタンを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.X))
{
    Debug.Log("Xボタンを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.Y))
{
    Debug.Log("Yボタンを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.Start))
{
    Debug.Log("左手メニューボタンを押した(オン・オフ不安定なので注意)");
}

if (OVRInput.GetDown(OVRInput.RawButton.RIndexTrigger))
{
    Debug.Log("右人差し指トリガーを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.RHandTrigger))
{
    Debug.Log("右中指グリップを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.LIndexTrigger))
{
    Debug.Log("左人差し指トリガーを押した");
}
if (OVRInput.GetDown(OVRInput.RawButton.LHandTrigger))
{
    Debug.Log("左中指グリップを押した");
}
}

Joystickで移動する

OVR Player ControllerPrefabをCameraの代わりに使用すれば、左で前後左右の移動、右で回転の動作が可能です。

Photonを用いて複数のプレイヤーと移動を同期する

Objectを掴む

Objectを掴む(遠距離)