Oculus Rift、Rift S、QuestのコントローラーのOculus Touchのよく使いそうな入力をまとめておきました。
RiftとRift S、Questのコントローラーは形状は違いますが、両方ともOculus Touchと言うらしいです。
前提として、Assetである、Oculus Integrationが必要です。
ボタン、トリガー入力
ボタンを押したときにTrue
OVRInput.GetDown()
ボタンが押しっぱなしの時にTrue
OVRInput.Get()
ボタンが離されたときにTrue
OVRInput.GetUp()
右手のOculusボタンは入力ができないです。
Aボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.A))
{
}
Bボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.B))
{
}
Xボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.X))
{
}
Yボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.Y))
{
}
メニューボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.Start))
{
}
右人差し指トリガー入力
if(OVRInput.GetDown(OVRInput.RawButton.RIndexTrigger))
{
}
右中指トリガー入力
if(OVRInput.GetDown(OVRInput.RawButton.RHandTrigger))
{
}
左人差し指トリガー入力
if(OVRInput.GetDown(OVRInput.RawButton.LIndexTrigger))
{
}
左中指トリガー入力
if(OVRInput.GetDown(OVRInput.RawButton.LHandTrigger))
{
}
右スティックボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.RThumbstick))
{
}
左スティックボタン入力
if(OVRInput.GetDown(OVRInput.RawButton.LThumbstick))
{
}
トリガーの押し込みを取得する
Oculus Touchのトリガーは押し込みを調整する事が出来ます。その値を0~1までfloat型で取得出来ます。
右中指トリガーの取得
float tmp = OVRInput.Get(OVRInput.RawAxis1D.RHandTrigger);
右人差し指トリガーの取得
float tmp = OVRInput.Get(OVRInput.RawAxis1D.RIndexTrigger);
左中指トリガーの取得
float tmp = OVRInput.Get(OVRInput.RawAxis1D.LHandTrigger);
左人差し指トリガーの取得
float tmp = OVRInput.Get(OVRInput.RawAxis1D.LIndexTrigger);
スティックの動きを取得する
Vextor2でX軸、Y軸は-1~1で取得出来ます。
右スティックの取得
Vector2 tmp = OVRInput.Get(OVRInput.RawAxis2D.RThumbstick);
左スティックの取得
Vector2 tmp = OVRInput.Get(OVRInput.RawAxis2D.LThumbstick);
スティックをデジタル入力する
アナログのスティックですが、上下左右の押し込みをbool型で取得できます。
右スティックを上に倒した
if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickUp)) {
}
右スティックを下に倒した
if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickDown)) {
}
右スティックを左に倒した
if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickLeft)) {
}
右スティックを右に倒した
if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickRight)) {
}
左スティックを上に倒した
if (OVRInput.GetDown(OVRInput.RawButton.LThumbstickUp)) {
}
左スティックを下に倒した
if (OVRInput.GetDown(OVRInput.RawButton.LThumbstickDown)) {
}
左スティックを左に倒した
if (OVRInput.GetDown(OVRInput.RawButton.LThumbstickLeft)) {
}
左スティックを右に倒した
if (OVRInput.GetDown(OVRInput.RawButton.LThumbstickRight)) {
}