string GetSourceString(InputControlDescriptor source) { ControlScheme scheme = m_ActionMapEditCopy.controlSchemes[selectedScheme]; var deviceSlot = scheme.GetDeviceSlot(source.deviceKey); return(string.Format("{0} {1} {2}", InputDeviceUtility.GetDeviceNameWithTag(deviceSlot), GetDeviceInstanceString(scheme, deviceSlot), InputDeviceUtility.GetDeviceControlName(deviceSlot, source))); }
void AddButtonAxisSource(object data) { ControlBinding binding = (ControlBinding)data; var source = new ButtonAxisSource(new InputControlDescriptor(), new InputControlDescriptor()); binding.buttonAxisSources.Add(source); m_SelectedSource = null; m_SelectedButtonAxisSource = source; }
void DisplaySource(InputControlDescriptor descriptor) { if (descriptor == descriptorToBeAssigned) { GUILayout.Button("...", GUILayout.Width(k_BindingWidth)); } else if (GUILayout.Button(InputDeviceUtility.GetDeviceControlName(descriptor), GUILayout.Width(k_BindingWidth))) { descriptorToBeAssigned = descriptor; InputSystem.ListenForBinding(BindInputControl); } }
void DrawSourceSummary(Rect rect, string label, InputControlDescriptor source) { if (m_SelectedSource == source) { GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture); } rect = EditorGUI.PrefixLabel(rect, new GUIContent(label)); rect.width = (rect.width - 4) * 0.5f; int indentLevel = EditorGUI.indentLevel; EditorGUI.indentLevel = 0; var scheme = m_ActionMapEditCopy.controlSchemes[selectedScheme]; var deviceSlots = scheme.deviceSlots; string[] deviceNames = deviceSlots.Select(slot => { if (slot.type == null) { return(string.Empty); } return(string.Format("{0} {1}", InputDeviceUtility.GetDeviceNameWithTag(slot), GetDeviceInstanceString(scheme, slot))); }).ToArray(); EditorGUI.BeginChangeCheck(); int deviceIndex = EditorGUI.Popup(rect, deviceSlots.FindIndex(slot => { return(source != null && source.deviceKey != DeviceSlot.kInvalidKey && slot.key == source.deviceKey); }), deviceNames); if (EditorGUI.EndChangeCheck()) { source.deviceKey = deviceSlots[deviceIndex].key; } rect.x += rect.width + 4; var deviceSlot = scheme.GetDeviceSlot(source.deviceKey); string[] controlNames = InputDeviceUtility.GetDeviceControlNames(deviceSlot != null ? deviceSlot.type : null); EditorGUI.BeginChangeCheck(); int controlIndex = EditorGUI.Popup(rect, source.controlIndex, controlNames); if (EditorGUI.EndChangeCheck()) { source.controlIndex = controlIndex; } EditorGUI.indentLevel = indentLevel; }
void DrawSourceSummary(InputControlDescriptor source) { Rect rect = EditorGUILayout.GetControlRect(); if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition)) { m_SelectedButtonAxisSource = null; m_SelectedSource = source; Repaint(); } if (m_SelectedSource == source) { GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture); } DrawSourceSummary(rect, "Source", source); EditorGUILayout.Space(); }
void DrawButtonAxisSourceSummary(ButtonAxisSource source) { Rect rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * 2 + EditorGUIUtility.standardVerticalSpacing); if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition)) { m_SelectedSource = null; m_SelectedButtonAxisSource = source; Repaint(); } if (m_SelectedButtonAxisSource == source) { GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture); } rect.height = EditorGUIUtility.singleLineHeight; DrawSourceSummary(rect, "Source (negative)", source.negative); rect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; DrawSourceSummary(rect, "Source (positive)", source.positive); EditorGUILayout.Space(); }
void DrawSourceSummary(Rect rect, string label, InputControlDescriptor source) { if (m_SelectedSource == source) { GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture); } rect = EditorGUI.PrefixLabel(rect, new GUIContent(label)); rect.width = (rect.width - 4) * 0.5f; int indentLevel = EditorGUI.indentLevel; EditorGUI.indentLevel = 0; List <Type> types = m_ActionMapEditCopy.controlSchemes[selectedScheme].deviceTypes.ToList(); string[] deviceNames = types.Select(e => e == null ? string.Empty : e.Name).ToArray(); EditorGUI.BeginChangeCheck(); int deviceIndex = EditorGUI.Popup(rect, types.IndexOf(source.deviceType), deviceNames); if (EditorGUI.EndChangeCheck()) { source.deviceType = types[deviceIndex]; } rect.x += rect.width + 4; string[] controlNames = InputDeviceUtility.GetDeviceControlNames(source.deviceType); EditorGUI.BeginChangeCheck(); int controlIndex = EditorGUI.Popup(rect, source.controlIndex, controlNames); if (EditorGUI.EndChangeCheck()) { source.controlIndex = controlIndex; } EditorGUI.indentLevel = indentLevel; }
bool BindInputControl(InputControl control) { m_ActionMapInput.BindControl(descriptorToBeAssigned, control, false); descriptorToBeAssigned = null; return(true); }
void DrawSourceSummary(Rect rect, InputControlDescriptor source) { EditorGUI.LabelField(rect, GetSourceString(source)); }
string GetSourceString(InputControlDescriptor source) { return(string.Format("{0} {1}", InputDeviceUtility.GetDeviceName(source), InputDeviceUtility.GetDeviceControlName(source))); }