Пример #1
0
        public override void Initialize(int id, System.Func <int, bool> isFocusedCallback)
        {
            if (
                spawnTransform == null ||
                doneButton == null ||
                cancelButton == null ||
                defaultButton == null ||
                uiControlSetPrefab == null ||
                uiSliderControlPrefab == null ||
                doneButtonLabel == null ||
                cancelButtonLabel == null ||
                defaultButtonLabel == null
                )
            {
                Debug.LogError("Rewired Control Mapper: All inspector values must be assigned!");
                return;
            }

            inputBehaviorInfo = new List <InputBehaviorInfo>();
            buttonCallbacks   = new Dictionary <int, System.Action <int> >();

            // Set static element labels
            doneButtonLabel.text    = ControlMapper.GetLanguage().done;
            cancelButtonLabel.text  = ControlMapper.GetLanguage().cancel;
            defaultButtonLabel.text = ControlMapper.GetLanguage().default_;

            base.Initialize(id, isFocusedCallback);
        }
Пример #2
0
 public override void Initialize(int id, Func <int, bool> isFocusedCallback)
 {
     if (this.spawnTransform == null || this.doneButton == null || this.cancelButton == null || this.defaultButton == null || this.uiControlSetPrefab == null || this.uiSliderControlPrefab == null || this.doneButtonLabel == null || this.cancelButtonLabel == null || this.defaultButtonLabel == null)
     {
         Debug.LogError("Rewired Control Mapper: All inspector values must be assigned!");
         return;
     }
     this.inputBehaviorInfo       = new List <InputBehaviorWindow.InputBehaviorInfo>();
     this.buttonCallbacks         = new Dictionary <int, Action <int> >();
     this.doneButtonLabel.text    = ControlMapper.GetLanguage().done;
     this.cancelButtonLabel.text  = ControlMapper.GetLanguage().cancel;
     this.defaultButtonLabel.text = ControlMapper.GetLanguage().default_;
     base.Initialize(id, isFocusedCallback);
 }
Пример #3
0
        public override void Initialize(int id, System.Func <int, bool> isFocusedCallback)
        {
            if (
                rightContentContainer == null ||
                valueDisplayGroup == null ||
                calibratedValueMarker == null ||
                rawValueMarker == null ||
                calibratedZeroMarker == null ||
                deadzoneArea == null ||
                deadzoneSlider == null ||
                sensitivitySlider == null ||
                zeroSlider == null ||
                invertToggle == null ||
                axisScrollAreaContent == null ||
                doneButton == null ||
                calibrateButton == null ||
                axisButtonPrefab == null ||
                doneButtonLabel == null ||
                cancelButtonLabel == null ||
                defaultButtonLabel == null ||
                deadzoneSliderLabel == null ||
                zeroSliderLabel == null ||
                sensitivitySliderLabel == null ||
                invertToggleLabel == null ||
                calibrateButtonLabel == null
                )
            {
                Debug.LogError("Rewired Control Mapper: All inspector values must be assigned!");
                return;
            }

            axisButtons     = new List <Button>();
            buttonCallbacks = new Dictionary <int, System.Action <int> >();

            // Set static element labels
            doneButtonLabel.text        = ControlMapper.GetLanguage().done;
            cancelButtonLabel.text      = ControlMapper.GetLanguage().cancel;
            defaultButtonLabel.text     = ControlMapper.GetLanguage().default_;
            deadzoneSliderLabel.text    = ControlMapper.GetLanguage().calibrateWindow_deadZoneSliderLabel;
            zeroSliderLabel.text        = ControlMapper.GetLanguage().calibrateWindow_zeroSliderLabel;
            sensitivitySliderLabel.text = ControlMapper.GetLanguage().calibrateWindow_sensitivitySliderLabel;
            invertToggleLabel.text      = ControlMapper.GetLanguage().calibrateWindow_invertToggleLabel;
            calibrateButtonLabel.text   = ControlMapper.GetLanguage().calibrateWindow_calibrateButtonLabel;

            base.Initialize(id, isFocusedCallback);
        }
Пример #4
0
 public void SetData(int playerId, ControlMapper.InputBehaviorSettings[] data)
 {
     if (!base.initialized)
     {
         return;
     }
     this.playerId = playerId;
     for (int i = 0; i < data.Length; i++)
     {
         ControlMapper.InputBehaviorSettings inputBehaviorSettings = data[i];
         if (inputBehaviorSettings != null && inputBehaviorSettings.isValid)
         {
             InputBehavior inputBehavior = this.GetInputBehavior(inputBehaviorSettings.inputBehaviorId);
             if (inputBehavior != null)
             {
                 UIControlSet uIControlSet = this.CreateControlSet();
                 Dictionary <int, InputBehaviorWindow.PropertyType> dictionary = new Dictionary <int, InputBehaviorWindow.PropertyType>();
                 string customEntry = ControlMapper.GetLanguage().GetCustomEntry(inputBehaviorSettings.labelLanguageKey);
                 if (!string.IsNullOrEmpty(customEntry))
                 {
                     uIControlSet.SetTitle(customEntry);
                 }
                 else
                 {
                     uIControlSet.SetTitle(inputBehavior.name);
                 }
                 if (inputBehaviorSettings.showJoystickAxisSensitivity)
                 {
                     UISliderControl uISliderControl = this.CreateSlider(uIControlSet, inputBehavior.id, null, ControlMapper.GetLanguage().GetCustomEntry(inputBehaviorSettings.joystickAxisSensitivityLabelLanguageKey), inputBehaviorSettings.joystickAxisSensitivityIcon, inputBehaviorSettings.joystickAxisSensitivityMin, inputBehaviorSettings.joystickAxisSensitivityMax, new Action <int, int, float>(this.JoystickAxisSensitivityValueChanged), new Action <int, int>(this.JoystickAxisSensitivityCanceled));
                     uISliderControl.slider.value = Mathf.Clamp(inputBehavior.joystickAxisSensitivity, inputBehaviorSettings.joystickAxisSensitivityMin, inputBehaviorSettings.joystickAxisSensitivityMax);
                     dictionary.Add(uISliderControl.id, InputBehaviorWindow.PropertyType.JoystickAxisSensitivity);
                 }
                 if (inputBehaviorSettings.showMouseXYAxisSensitivity)
                 {
                     UISliderControl uISliderControl2 = this.CreateSlider(uIControlSet, inputBehavior.id, null, ControlMapper.GetLanguage().GetCustomEntry(inputBehaviorSettings.mouseXYAxisSensitivityLabelLanguageKey), inputBehaviorSettings.mouseXYAxisSensitivityIcon, inputBehaviorSettings.mouseXYAxisSensitivityMin, inputBehaviorSettings.mouseXYAxisSensitivityMax, new Action <int, int, float>(this.MouseXYAxisSensitivityValueChanged), new Action <int, int>(this.MouseXYAxisSensitivityCanceled));
                     uISliderControl2.slider.value = Mathf.Clamp(inputBehavior.mouseXYAxisSensitivity, inputBehaviorSettings.mouseXYAxisSensitivityMin, inputBehaviorSettings.mouseXYAxisSensitivityMax);
                     dictionary.Add(uISliderControl2.id, InputBehaviorWindow.PropertyType.MouseXYAxisSensitivity);
                 }
                 this.inputBehaviorInfo.Add(new InputBehaviorWindow.InputBehaviorInfo(inputBehavior, uIControlSet, dictionary));
             }
         }
     }
     base.defaultUIElement = this.doneButton.gameObject;
 }
Пример #5
0
 public override void Initialize(int id, Func <int, bool> isFocusedCallback)
 {
     if (this.rightContentContainer == null || this.valueDisplayGroup == null || this.calibratedValueMarker == null || this.rawValueMarker == null || this.calibratedZeroMarker == null || this.deadzoneArea == null || this.deadzoneSlider == null || this.sensitivitySlider == null || this.zeroSlider == null || this.invertToggle == null || this.axisScrollAreaContent == null || this.doneButton == null || this.calibrateButton == null || this.axisButtonPrefab == null || this.doneButtonLabel == null || this.cancelButtonLabel == null || this.defaultButtonLabel == null || this.deadzoneSliderLabel == null || this.zeroSliderLabel == null || this.sensitivitySliderLabel == null || this.invertToggleLabel == null || this.calibrateButtonLabel == null)
     {
         Debug.LogError("Rewired Control Mapper: All inspector values must be assigned!");
         return;
     }
     this.axisButtons                 = new List <Button>();
     this.buttonCallbacks             = new Dictionary <int, Action <int> >();
     this.doneButtonLabel.text        = ControlMapper.GetLanguage().done;
     this.cancelButtonLabel.text      = ControlMapper.GetLanguage().cancel;
     this.defaultButtonLabel.text     = ControlMapper.GetLanguage().default_;
     this.deadzoneSliderLabel.text    = ControlMapper.GetLanguage().calibrateWindow_deadZoneSliderLabel;
     this.zeroSliderLabel.text        = ControlMapper.GetLanguage().calibrateWindow_zeroSliderLabel;
     this.sensitivitySliderLabel.text = ControlMapper.GetLanguage().calibrateWindow_sensitivitySliderLabel;
     this.invertToggleLabel.text      = ControlMapper.GetLanguage().calibrateWindow_invertToggleLabel;
     this.calibrateButtonLabel.text   = ControlMapper.GetLanguage().calibrateWindow_calibrateButtonLabel;
     base.Initialize(id, isFocusedCallback);
 }
Пример #6
0
        public void SetData(int playerId, ControlMapper.InputBehaviorSettings[] data)
        {
            if (!initialized)
            {
                return;
            }

            this.playerId = playerId;

            // Create control sets
            for (int i = 0; i < data.Length; i++)
            {
                var item = data[i];
                if (item == null || !item.isValid)
                {
                    continue;
                }

                InputBehavior inputBehavior = GetInputBehavior(item.inputBehaviorId);
                if (inputBehavior == null)
                {
                    continue;
                }

                UIControlSet set = CreateControlSet();
                Dictionary <int, PropertyType> idToProperty = new Dictionary <int, PropertyType>();;

                // Set the title
                string customTitle = ControlMapper.GetLanguage().GetCustomEntry(item.labelLanguageKey);
                if (!string.IsNullOrEmpty(customTitle))
                {
                    set.SetTitle(customTitle);
                }
                else
                {
                    set.SetTitle(inputBehavior.name);
                }

                // Create sliders

                if (item.showJoystickAxisSensitivity)
                {
                    UISliderControl slider = CreateSlider(
                        set,
                        inputBehavior.id,
                        null,
                        ControlMapper.GetLanguage().GetCustomEntry(item.joystickAxisSensitivityLabelLanguageKey),
                        item.joystickAxisSensitivityIcon,
                        item.joystickAxisSensitivityMin,
                        item.joystickAxisSensitivityMax,
                        JoystickAxisSensitivityValueChanged,
                        JoystickAxisSensitivityCanceled
                        );
                    // Set initial value
                    slider.slider.value = Mathf.Clamp(inputBehavior.joystickAxisSensitivity, item.joystickAxisSensitivityMin, item.joystickAxisSensitivityMax);
                    // Store property type
                    idToProperty.Add(slider.id, PropertyType.JoystickAxisSensitivity);
                }

                if (item.showMouseXYAxisSensitivity)
                {
                    UISliderControl slider = CreateSlider(
                        set,
                        inputBehavior.id,
                        null,
                        ControlMapper.GetLanguage().GetCustomEntry(item.mouseXYAxisSensitivityLabelLanguageKey),
                        item.mouseXYAxisSensitivityIcon,
                        item.mouseXYAxisSensitivityMin,
                        item.mouseXYAxisSensitivityMax,
                        MouseXYAxisSensitivityValueChanged,
                        MouseXYAxisSensitivityCanceled
                        );
                    // Set initial value
                    slider.slider.value = Mathf.Clamp(inputBehavior.mouseXYAxisSensitivity, item.mouseXYAxisSensitivityMin, item.mouseXYAxisSensitivityMax);
                    // Store property type
                    idToProperty.Add(slider.id, PropertyType.MouseXYAxisSensitivity);
                }

                // mouseOtherAxisSensitivity not implemented

                // Add to the list
                inputBehaviorInfo.Add(new InputBehaviorInfo(inputBehavior, set, idToProperty));
            }

            // Set default UI element
            defaultUIElement = doneButton.gameObject;
        }
Пример #7
0
        public void SetJoystick(int playerId, Joystick joystick)
        {
            if (!initialized)
            {
                return;
            }

            this.playerId = playerId;
            this.joystick = joystick;

            if (joystick == null)
            {
                Debug.LogError("Rewired Control Mapper: Joystick cannot be null!");
                return;
            }

            // Create axis list
            float buttonHeight = 0.0f;

            for (int i = 0; i < joystick.axisCount; i++)
            {
                int        index    = i;
                GameObject instance = UITools.InstantiateGUIObject <Button>(axisButtonPrefab, axisScrollAreaContent, "Axis" + i);
                Button     button   = instance.GetComponent <Button>();
                button.onClick.AddListener(() => { OnAxisSelected(index, button); });
                Text text = UnityTools.GetComponentInSelfOrChildren <Text>(instance);
                if (text != null)
                {
                    text.text = ControlMapper.GetLanguage().GetElementIdentifierName(joystick, joystick.AxisElementIdentifiers[i].id, AxisRange.Full);
                }
                if (buttonHeight == 0.0f)
                {
                    buttonHeight = UnityTools.GetComponentInSelfOrChildren <LayoutElement>(instance).minHeight;
                }
                axisButtons.Add(button);
            }

            // set axis list height
            float vSpacing = axisScrollAreaContent.GetComponent <VerticalLayoutGroup>().spacing;

            axisScrollAreaContent.sizeDelta = new Vector2(axisScrollAreaContent.sizeDelta.x, Mathf.Max((joystick.axisCount * (buttonHeight + vSpacing) - vSpacing), axisScrollAreaContent.sizeDelta.y));

            // Store the original calibration data so we can revert
            origCalibrationData = joystick.calibrationMap.ToXmlString();

            // Record info
            displayAreaWidth = rightContentContainer.sizeDelta.x;

            // Try to get the UI control axis deadzone from the RewiredStandaloneInputModule if it exists in the hierarchy
            // This is used to prevent users from rendering menu navigation axes unusable by changing the axis sensitivity
            rewiredStandaloneInputModule = gameObject.transform.root.GetComponentInChildren <RewiredStandaloneInputModule>();
            if (rewiredStandaloneInputModule != null)
            {
                menuHorizActionId = ReInput.mapping.GetActionId(rewiredStandaloneInputModule.horizontalAxis);
                menuVertActionId  = ReInput.mapping.GetActionId(rewiredStandaloneInputModule.verticalAxis);
            }

            // Select first axis
            if (joystick.axisCount > 0)
            {
                SelectAxis(0);
            }

            // Set default UI element
            defaultUIElement = doneButton.gameObject;

            // Draw window
            RefreshControls();
            Redraw();
        }