現在、タッチパッドからの指向性入力を除いて、私のViveコントローラのすべての入力を単一で呼び出すことができます。SteamVRタッチパッド指向性入力
ユーザーが押している方向にはどうすればアクセスできますか?
ここで私は "EVRButtonId.k_EButton_DPad_Up"を使用しようとしていますが、成功しませんでした。
現在、タッチパッドからの指向性入力を除いて、私のViveコントローラのすべての入力を単一で呼び出すことができます。SteamVRタッチパッド指向性入力
ユーザーが押している方向にはどうすればアクセスできますか?
ここで私は "EVRButtonId.k_EButton_DPad_Up"を使用しようとしていますが、成功しませんでした。
私は同じ問題を持っていた:
は、しかし、その上にプレーヤーのプレスがあれば、右パッドのx、パッドのy座標を与えるこれを試してみてください。私がこの問題を回避するためにしたのは、次のとおりです。
if(Controller.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0)[0] > 0.8f
&& Controller.GetPressDown(Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad))
{
// code continues...
}
これは動作していたようです。基本的に、私はちょうど私たちがパッドが押された時を知っているという事実を利用して、パッドのユーザーが触っている場所を知っています。
この特別な例は、x軸(GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0)[0])を使用したタッチパッドの右側の例です。これが最良の方法であるかどうかは確信があります。しかし、それは動作し、助けの面で現在そこに多くはありません。
.NET/C#のHTC VIVE APIで少し作業しました。私はパッドのいくつかの問題を抱えていました。なぜなら、プレーヤーがパッドのボタンを押さずにパッドに触れているかどうかを知ることができず、プレーヤーがパッドに触れていないときにAPIがそれは触覚パッドなので、少しランダムなx、y位置です。
//Get the right device
rightDevice = SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.FarthestRight);
//Check if the device is valid
if(rightDevice == -1){return Vector2.zero;}
//Get the x,y position on the pad
Vector2 touch = SteamVR_Controller.Input(rightDevice).GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0);
//Check if the player press on the pad button
if(!SteamVR_Controller.Input(deviceDroite).GetPress(SteamVR_Controller.ButtonMask.Touchpad)){return Vector2.zero}
return touch;