Skip to content

Commit

Permalink
fix more input junk
Browse files Browse the repository at this point in the history
  • Loading branch information
BzzzThe18th authored Sep 21, 2023
1 parent 5b29a2e commit 99a6f46
Showing 1 changed file with 36 additions and 45 deletions.
81 changes: 36 additions & 45 deletions Utils/EasyInput.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using UnityEngine.XR;
using UnityEngine;
using Valve.VR;
using System;

namespace HoneyLib.Utils
Expand All @@ -22,20 +23,6 @@ public class EasyInput : MonoBehaviour
public static bool RightStickClick;
public static Vector2 RightStick;
public string platform { get; internal set; }

//oxr
static bool _FaceButtonX;
static bool _FaceButtonY;
static bool _FaceButtonA;
static bool _FaceButtonB;
static bool _LeftTrigger;
static bool _LeftGrip;
static bool _RightTrigger;
static bool _RightGrip;
static bool _LeftStickClick;
static Vector2 _LeftStick;
static bool _RightStickClick;
static Vector2 _RightStick;

[Obsolete("Input updating manually is now obselete for performance reasons. REMOVE THIS METHOD INVOCATION FROM YOUR CODE")]
public static void UpdateInput()
Expand All @@ -44,39 +31,43 @@ public static void UpdateInput()

void FixedUpdate()
{
InputDevice leftController = InputDevices.GetDeviceAtXRNode(lNode);
InputDevice rightController = InputDevices.GetDeviceAtXRNode(rNode);

leftController.TryGetFeatureValue(CommonUsages.secondaryButton, out _FaceButtonX);
leftController.TryGetFeatureValue(CommonUsages.primaryButton, out _FaceButtonY);
rightController.TryGetFeatureValue(CommonUsages.secondaryButton, out _FaceButtonA);
rightController.TryGetFeatureValue(CommonUsages.primaryButton, out _FaceButtonB);
leftController.TryGetFeatureValue(CommonUsages.triggerButton, out _LeftTrigger);
leftController.TryGetFeatureValue(CommonUsages.gripButton, out _LeftGrip);
rightController.TryGetFeatureValue(CommonUsages.triggerButton, out _RightTrigger);
rightController.TryGetFeatureValue(CommonUsages.gripButton, out _RightGrip);
leftController.TryGetFeatureValue(CommonUsages.primary2DAxisClick, out _LeftStickClick);
leftController.TryGetFeatureValue(CommonUsages.primary2DAxis, out _LeftStick);
rightController.TryGetFeatureValue(CommonUsages.primary2DAxisClick, out _RightStickClick);
rightController.TryGetFeatureValue(CommonUsages.primary2DAxis, out _RightStick);

FaceButtonX = ControllerInputPoller.instance?.leftControllerPrimaryButton == true | _FaceButtonX;
FaceButtonY = ControllerInputPoller.instance?.leftControllerSecondaryButton == true | _FaceButtonY;
FaceButtonA = ControllerInputPoller.instance?.rightControllerPrimaryButton == true | _FaceButtonA;
FaceButtonB = ControllerInputPoller.instance?.rightControllerSecondaryButton == true | _FaceButtonB;
LeftTrigger = ControllerInputPoller.instance?.leftControllerIndexFloat > 0.5f | _LeftTrigger;
LeftGrip = ControllerInputPoller.instance?.leftControllerGripFloat > 0.5f | _LeftGrip;
RightTrigger = ControllerInputPoller.instance.rightControllerIndexFloat > 0.5f | _RightTrigger;
RightGrip = ControllerInputPoller.instance.rightControllerGripFloat > 0.5f | _RightGrip;
//I do not know of any way to get stick clicks through controller input poller, or other methods, when using steamvr

//get platform for stick differentiation
var isSteam = platform == "Steam";

LeftStickClick = _LeftStickClick;
LeftStick = isSteam ? ControllerInputPoller.Primary2DAxis(lNode) : _LeftStick;
RightStickClick = _RightStickClick;
RightStick = isSteam ? ControllerInputPoller.Primary2DAxis(rNode) : _RightStick;
switch (isSteam)
{
case true:
FaceButtonX = ControllerInputPoller.instance.leftControllerPrimaryButton;
FaceButtonY = ControllerInputPoller.instance.leftControllerSecondaryButton;
FaceButtonA = ControllerInputPoller.instance.rightControllerPrimaryButton;
FaceButtonB = ControllerInputPoller.instance.rightControllerSecondaryButton;
LeftTrigger = ControllerInputPoller.instance.leftControllerIndexFloat > 0.5f;
LeftGrip = ControllerInputPoller.instance.leftControllerGripFloat > 0.5f;
RightTrigger = ControllerInputPoller.instance.rightControllerIndexFloat > 0.5f;
RightGrip = ControllerInputPoller.instance.rightControllerGripFloat > 0.5f;
LeftStickClick = SteamVR_Actions.gorillaTag_LeftJoystickClick.state;
LeftStick = SteamVR_Actions.gorillaTag_LeftJoystick2DAxis.axis;
RightStickClick = SteamVR_Actions.gorillaTag_RightJoystickClick.state;
RightStick = ControllerInputPoller.instance.rightControllerPrimary2DAxis;
break;
case false:
InputDevice lC = InputDevices.GetDeviceAtXRNode(lNode);
InputDevice rC = InputDevices.GetDeviceAtXRNode(rNode);

FaceButtonX = ControllerInputPoller.instance.leftControllerPrimaryButton;
FaceButtonY = ControllerInputPoller.instance.leftControllerSecondaryButton;
FaceButtonA = ControllerInputPoller.instance.rightControllerPrimaryButton;
FaceButtonB = ControllerInputPoller.instance.rightControllerSecondaryButton;
LeftTrigger = ControllerInputPoller.instance.leftControllerIndexFloat > 0.5f;
LeftGrip = ControllerInputPoller.instance.leftControllerGripFloat > 0.5f;
RightTrigger = ControllerInputPoller.instance.rightControllerIndexFloat > 0.5f;
RightGrip = ControllerInputPoller.instance.rightControllerGripFloat > 0.5f;
lC.TryGetFeatureValue(CommonUsages.primary2DAxisClick, out LeftStickClick);
LeftStick = ControllerInputPoller.Primary2DAxis(lNode);
rC.TryGetFeatureValue(CommonUsages.primary2DAxisClick, out RightStickClick);
RightStick = ControllerInputPoller.Primary2DAxis(rNode);
break;
}

}
}
}

0 comments on commit 99a6f46

Please sign in to comment.