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); }