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を追加した際に同時に追加された、
EventSystem
オブジェクトを削除します。 -
UI Helper
のEventSystem
にあるOVR Input Module
コンポーネントのRay Trasform
に使用するコントローラー(Right Hand Anchor
またはLeft Hand Anchor
)をドラッグ&ドロップします。 -
Joy Pad Click Button
をTrigger Buttonにしたい場合、右コントローラの場合はSecondary Index Trigger
, 左コントローラーの場合はPrimary Index Trigger
を設定します。
-
もし、ポインタまでの軌跡を表示させたい場合には、
UI Helper
のLine Renderer
コンポーネントをenable
にします。
Controllerを表示する (1)
Prefabs
フォルダーの中のOVRControllerPrefab
をControllerAnchor
の下に追加します。そして、対応するように、Inspector内にある項目で、Controller
をL Louch
または、R Louch
を設定します。
HandControllerを表示する
Prefabs
フォルダーの中のOVRCustomHandLeft
をLeftHandAnchor
に、OVRCustomHandRight
をRightHandAnchor
にアタッチします。
(どちらがいいのかは、わからない)
Controllerの入力を受け取る
OVRPlayerController
にOVRInputListener.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 Controller
PrefabをCameraの代わりに使用すれば、左で前後左右の移動、右で回転の動作が可能です。