protected virtual void ManageTouchpadControl() { if (touchpadControlScript != null) { VRTK_ControllerReference controllerReference = GetReferenceFromEvents(touchpadControlScript.controller); VRTK_SDKVector2AxisInputOverrideType selectedCoorinateModifier = GetSelectedModifier(touchpadControlCoordinateOverrides, controllerReference); if (selectedCoorinateModifier.overrideAxis != VRTK_ControllerEvents.Vector2AxisAlias.Undefined) { touchpadControlScript.enabled = false; touchpadControlScript.coordinateAxis = selectedCoorinateModifier.overrideAxis; touchpadControlScript.enabled = true; } VRTK_SDKButtonInputOverrideType selectedActivationModifier = GetSelectedModifier(touchpadControlActivationOverrides, controllerReference); if (selectedActivationModifier.overrideButton != VRTK_ControllerEvents.ButtonAlias.Undefined) { touchpadControlScript.enabled = false; touchpadControlScript.primaryActivationButton = selectedActivationModifier.overrideButton; touchpadControlScript.enabled = true; } VRTK_SDKButtonInputOverrideType selectedActionModifier = GetSelectedModifier(touchpadControlModifierOverrides, controllerReference); if (selectedActionModifier.overrideButton != VRTK_ControllerEvents.ButtonAlias.Undefined) { touchpadControlScript.enabled = false; touchpadControlScript.actionModifierButton = selectedActionModifier.overrideButton; touchpadControlScript.enabled = true; } } }
protected virtual VRTK_SDKVector2AxisInputOverrideType GetSelectedModifier(List <VRTK_SDKVector2AxisInputOverrideType> overrideTypes, VRTK_ControllerReference controllerReference) { //attempt to find by the overall SDK set up to start with VRTK_SDKVector2AxisInputOverrideType selectedModifier = overrideTypes.FirstOrDefault(item => item.loadedSDKSetup == sdkManager.loadedSetup); //If no sdk set up is found or it is null then try and find by the SDK controller if (selectedModifier == null) { SDK_BaseController.ControllerType currentControllerType = VRTK_DeviceFinder.GetCurrentControllerType(controllerReference); selectedModifier = overrideTypes.FirstOrDefault(item => item.controllerType == currentControllerType); } return(selectedModifier); }
protected virtual void ManagePointerDirectionIndicator() { if (pointerDirectionIndicatorScript != null) { VRTK_ControllerReference controllerReference = GetReferenceFromEvents(pointerDirectionIndicatorScript.GetControllerEvents()); VRTK_SDKVector2AxisInputOverrideType selectedCoorinateModifier = GetSelectedModifier(directionIndicatorCoordinateOverrides, controllerReference); if (selectedCoorinateModifier.overrideAxis != VRTK_ControllerEvents.Vector2AxisAlias.Undefined) { pointerDirectionIndicatorScript.enabled = false; pointerDirectionIndicatorScript.coordinateAxis = selectedCoorinateModifier.overrideAxis; pointerDirectionIndicatorScript.enabled = true; } } }