2

XR Interaction Toolkit を使用して Oculus Quest で VR ゲームを作成しようとしています。ユーザーが UI 要素をホバリングしているときに触覚イベントを構成したいと考えています。問題は、XRRayInteractor を使用して XRGrabInteractable または TeleportationArea をホバリングしているが、キャンバス上にいないときに触覚イベントが機能することです。単純なホバー イベント (画像の OnHoverUI) でさえ、キャンバスでは機能しません。UI要素(ボタン、スライダーなど)を操作できるので、本当に奇妙です。

XRRayInteractor のパラメーターは次のとおりです。 XRRayInteractor パラメーター

これらのパラメーターなしで機能するソリューションを既に見つけましたが、本当に面倒です。まず、コントローラー (右手と左手) にアクセスする必要がありました。次に、触覚フィードバックが必要なすべての UI 要素に「イベント トリガー」コンポーネントを追加しました。これらのトリガーには、「OnHoverUI」関数を呼び出す「Pointer Enter」イベントがあります。

void Start()
{
    var inputDevices = new List<InputDevice>();
    InputDevices.GetDevices(inputDevices);
    foreach (var device in inputDevices)
    {
        if (device.role.ToString() == "LeftHanded")
        {
             leftHand = device;
        }
        else if (device.role.ToString() == "RightHanded")
        {
            rightHand = device;
        }
    }
}

public void OnHoverUI()
{
    if (leftMenuMode) leftHand.SendHapticImpulse(0, 1f, 0.01f);
    else if (rightMenuMode) rightHand.SendHapticImpulse(0, 1f, 0.01f);
}

XRRayInteractor のパラメーターを使用したいのですが、UI では機能しません。

誰かが理由を知っていますか?

4

1 に答える 1