Пример #1
0
        private void ShowInputControlPicker(Rect rect, SerializedProperty pathProperty, AdvancedDropdownState pickerState,
                                            Action <SerializedProperty> onPickCallback)
        {
            if (m_InputControlPickerDropdown == null)
            {
                m_InputControlPickerDropdown = new InputControlPickerDropdown(pickerState, pathProperty, onPickCallback);
            }

            if (m_Toolbar != null)
            {
                if (m_Toolbar.selectedDevice != null)
                {
                    m_InputControlPickerDropdown.SetDeviceFilter(new[] { m_Toolbar.selectedDevice });
                }
                else
                {
                    m_InputControlPickerDropdown.SetDeviceFilter(m_Toolbar.allDevices);
                }
                if (m_ExpectedControlLayout != null)
                {
                    m_InputControlPickerDropdown.SetExpectedControlLayoutFilter(m_ExpectedControlLayout);
                }
            }
            m_InputControlPickerDropdown.Show(rect);
        }
        private void ShowInputControlPicker(Rect rect, SerializedProperty pathProperty, InputControlPickerState pickerState,
                                            Action onPickCallback)
        {
            if (m_InputControlPickerDropdown == null)
            {
                m_InputControlPickerDropdown = new InputControlPickerDropdown(pickerState.state,
                                                                              path =>
                {
                    pathProperty.stringValue = path;
                    onPickCallback();
                });
            }

            var haveDeviceFilterFromControlScheme = false;

            if (m_Toolbar != null)
            {
                if (m_Toolbar.selectedDevice != null)
                {
                    // Single device selected from set of devices in control scheme.
                    m_InputControlPickerDropdown.SetDeviceFilter(new[] { m_Toolbar.selectedDevice });
                    haveDeviceFilterFromControlScheme = true;
                }
                else
                {
                    var allDevices = m_Toolbar.allDevices;
                    if (allDevices.Length > 0)
                    {
                        // Filter by all devices in current control scheme.
                        m_InputControlPickerDropdown.SetDeviceFilter(allDevices);
                        haveDeviceFilterFromControlScheme = true;
                    }
                }
                if (m_ExpectedControlLayout != null)
                {
                    m_InputControlPickerDropdown.SetExpectedControlLayoutFilter(m_ExpectedControlLayout);
                }
            }

            // If there's no device filter coming from a control scheme, filter by supported
            // devices as given by settings .
            if (!haveDeviceFilterFromControlScheme)
            {
                m_InputControlPickerDropdown.SetDeviceFilter(InputSystem.settings.supportedDevices.ToArray());
            }

            m_InputControlPickerDropdown.Show(rect);
        }
        private void ShowInputControlPicker(Rect rect)
        {
            if (m_InputControlPickerDropdown == null)
            {
                m_InputControlPickerDropdown = new InputControlPickerDropdown(m_PickerState.state,
                                                                              path =>
                {
                    m_PathProperty.stringValue = path;
                    m_OnModified();
                });
            }

            if (m_DeviceFilter != null)
            {
                m_InputControlPickerDropdown.SetDeviceFilter(m_DeviceFilter);
                if (!string.IsNullOrEmpty(m_ExpectedControlLayoutFilter))
                {
                    m_InputControlPickerDropdown.SetExpectedControlLayoutFilter(m_ExpectedControlLayoutFilter);
                }
            }

            m_InputControlPickerDropdown.Show(rect);
        }