private void AddGamepadInput(CommonXRInputs gamepadButtonOrAxis, bool isNewBinding) { Sinput.CheckGamepads(); if (isNewBinding) { commonXRMappings.Add(gamepadButtonOrAxis); } List <DeviceInput> applicableMapInputs = CommonGamepadMappings.GetApplicableMaps(CommonGamepadInputs.NOBUTTON, gamepadButtonOrAxis, Sinput.gamepads); for (int i = 0; i < applicableMapInputs.Count; i++) { applicableMapInputs[i].commonMappingType = CommonGamepadInputs.NOBUTTON; } AddGamepadInputs(applicableMapInputs); }
public void AddGamepadInput(CommonXRInputs gamepadButtonOrAxis) { AddGamepadInput(gamepadButtonOrAxis, true); }
/*public static List<DeviceInput> GetApplicableMaps(CommonXRInputs t, string[] connectedGamepads) { * Debug.LogError("DO THISSSSS"); * return new List<DeviceInput>(); * }*/ public static List <DeviceInput> GetApplicableMaps(CommonGamepadInputs commonInputType, CommonXRInputs commonXRInputType, string[] connectedGamepads) { //builds input mapping of type t for all known connected gamepads List <DeviceInput> applicableInputs = new List <DeviceInput>(); bool addthis = false; for (int i = 0; i < commonMappings.Count; i++) { //if (commonMappings[i].isXRdevice) Debug.Log("Found XR device"); //add any applicable button mappings for (int k = 0; k < commonMappings[i].buttons.Count; k++) { addthis = false; if (!commonMappings[i].isXRdevice && commonMappings[i].buttons[k].buttonType != CommonGamepadInputs.NOBUTTON) { if (commonMappings[i].buttons[k].buttonType == commonInputType) { addthis = true; } } if (commonMappings[i].isXRdevice && commonMappings[i].buttons[k].vrButtonType != CommonXRInputs.NOBUTTON) { //Debug.Log("Adding XR button from common mapping"); if (commonMappings[i].buttons[k].vrButtonType == commonXRInputType) { addthis = true; } } if (addthis) { //add this button input DeviceInput newInput = new DeviceInput(InputDeviceType.GamepadButton); newInput.gamepadButtonNumber = commonMappings[i].buttons[k].buttonNumber; newInput.commonMappingType = commonInputType; newInput.displayName = commonMappings[i].buttons[k].displayName; newInput.allowedSlots = mappingSlots[i].slots.ToArray(); applicableInputs.Add(newInput); } } //add any applicable axis bingings for (int k = 0; k < commonMappings[i].axis.Count; k++) { addthis = false; if (!commonMappings[i].isXRdevice && commonMappings[i].axis[k].buttonType != CommonGamepadInputs.NOBUTTON) { if (commonMappings[i].axis[k].buttonType == commonInputType) { addthis = true; } } if (commonMappings[i].isXRdevice && commonMappings[i].axis[k].vrButtonType != CommonXRInputs.NOBUTTON) { //Debug.Log("Adding XR Axis from common mapping"); if (commonMappings[i].axis[k].vrButtonType == commonXRInputType) { addthis = true; } } if (addthis) { //add this axis input DeviceInput newInput = new DeviceInput(InputDeviceType.GamepadAxis); newInput.gamepadAxisNumber = commonMappings[i].axis[k].axisNumber; newInput.commonMappingType = commonInputType; newInput.displayName = commonMappings[i].axis[k].displayName; newInput.invertAxis = commonMappings[i].axis[k].invert; newInput.clampAxis = commonMappings[i].axis[k].clamp; newInput.axisButtoncompareVal = commonMappings[i].axis[k].compareVal; newInput.defaultAxisValue = commonMappings[i].axis[k].defaultVal; newInput.allowedSlots = mappingSlots[i].slots.ToArray(); if (commonMappings[i].axis[k].rescaleAxis) { newInput.rescaleAxis = true; newInput.rescaleAxisMin = commonMappings[i].axis[k].rescaleAxisMin; newInput.rescaleAxisMax = commonMappings[i].axis[k].rescaleAxisMax; } applicableInputs.Add(newInput); } } } return(applicableInputs); }