コード例 #1
0
ファイル: Control.cs プロジェクト: SophieH/Sinput
        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);
        }
コード例 #2
0
ファイル: Control.cs プロジェクト: SophieH/Sinput
 public void AddGamepadInput(CommonXRInputs gamepadButtonOrAxis)
 {
     AddGamepadInput(gamepadButtonOrAxis, true);
 }
コード例 #3
0
        /*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);
        }