Ejemplo n.º 1
0
 public ControlSetup(InputDevice device)
 {
     m_DeviceType = device.GetType();
     m_DefaultAdditionsAsStandardized = true;
     device.AddStandardControls(this);
     m_DefaultAdditionsAsStandardized = false;
 }
 void MakeMostRecentDevice(InputDevice device)
 {
     for (var type = device.GetType(); type != typeof(InputDevice); type = type.BaseType)
     {
         m_MostRecentDeviceOfType[type] = device;
     }
 }
        public int LookupDeviceIndex(InputDevice inputDevice)
        {
            List <InputDevice> list;

            if (!m_DevicesByType.TryGetValue(inputDevice.GetType(), out list))
            {
                return(-1);
            }

            return(list.IndexOf(inputDevice));
        }
Ejemplo n.º 4
0
        public static void Create(InputDevice device)
        {
            InputDeviceDebuggerWindow window = EditorWindow.CreateInstance <InputDeviceDebuggerWindow>();

            window.m_SerialNumber = device.serialNumber;
            window.m_TypeName     = device.GetType().FullName;
            window.m_Device       = device;
            window.minSize        = new Vector2(270, 300);
            window.Show();
            window.titleContent = new GUIContent(device.name);
        }
        public void UnregisterDevice(InputDevice inputDevice)
        {
            if (!m_InputDevices.Contains(inputDevice))
            {
                return;
            }

            m_InputDevices.Remove(inputDevice);

            var deviceType = inputDevice.GetType();

            UnregisterDeviceByTypes(deviceType, inputDevice);
        }
        public void RegisterDevice(InputDevice inputDevice)
        {
            if (m_InputDevices.Contains(inputDevice))
            {
                return;
            }

            m_InputDevices.Add(inputDevice);

            var deviceType = inputDevice.GetType();

            RegisterDeviceByTypes(deviceType, inputDevice);
        }
Ejemplo n.º 7
0
        public int GetDeviceKey(InputDevice device)
        {
            for (int i = 0; i < m_DeviceSlots.Count; i++)
            {
                var deviceSlot = m_DeviceSlots[i];
                if (device.GetType().IsInstanceOfType(deviceSlot.type.value) &&
                    (device.tagIndex == -1 || device.tagIndex == deviceSlot.tagIndex))
                {
                    return(deviceSlot.key);
                }
            }

            return(DeviceSlot.kInvalidKey);
        }
Ejemplo n.º 8
0
        void OnEnable()
        {
            EditorApplication.playmodeStateChanged += Repaint;
            for (int i = 0; i < InputSystem.devices.Count; i++)
            {
                InputDevice device = InputSystem.devices[i];
                if (device.serialNumber == m_SerialNumber && device.GetType().FullName == m_TypeName)
                {
                    m_Device = device;
                    break;
                }
            }

            m_BeforeRemap = new InputHandlerCallback
            {
                processEvent =
                    evt =>
                {
                    RecordEventBeforeRemap(evt);
                    return(false);
                }
            };
            m_AfterRemap = new InputHandlerCallback
            {
                processEvent =
                    evt =>
                {
                    RecordEventAfterRemap(evt);
                    return(false);
                }
            };
            InputSystem.rewriters.children.Insert(0, m_BeforeRemap);
            InputSystem.consumers.children.Insert(0, m_AfterRemap);

            m_Preview.Init("InputDeviceDebugger");
        }
Ejemplo n.º 9
0
        void OnGUI()
        {
            if (m_Device == null)
            {
                if (!InputSystemEditorUtility.inputSystemEnabled)
                {
                    InputSystemEditorUtility.ShowSystemNotEnabledHelpbox();
                    return;
                }

                EditorGUILayout.HelpBox(Styles.notFoundHelpText, MessageType.Warning);
                return;
            }
            if (m_ControlIndexStrings == null || m_ControlIndexStrings.Count != m_Device.controlCount)
            {
                InitControlNames();
            }

            EditorGUILayout.BeginVertical("OL Box", GUILayout.ExpandHeight(false));
            EditorGUILayout.LabelField("Name", m_Device.name);
            EditorGUILayout.LabelField("Profile", m_Device.profile != null ? m_Device.profile.GetType().Name : "");
            EditorGUILayout.LabelField("Connected", m_Device.isConnected.ToString());
            EditorGUILayout.LabelField("Active", m_Device.active.ToString());
            EditorGUILayout.LabelField("Manufacturer", m_Device.manufacturer);
            EditorGUILayout.LabelField("Serial Number", m_Device.serialNumber);
            EditorGUILayout.LabelField("Device Type", m_Device.GetType().Name);
            EditorGUILayout.LabelField("Device Tag Index", m_Device.tagIndex.ToString());
            EditorGUILayout.LabelField("Native Device ID", m_Device.nativeId.ToString());
            EditorGUILayout.EndVertical();

            bool wasActive = InputSystem.isActive;

            InputSystem.isActive = true;

            m_ScrollControls = EditorGUILayout.BeginScrollView(m_ScrollControls);
            int controlCount = m_Device.controlCount;

            EditorGUI.indentLevel += 2;
            for (int i = 0; i < controlCount; i++)
            {
                InputControl control = m_Device.GetControl(i);
                string       str     = ToStringWithDecimals(control.valueObject);
                EditorGUILayout.LabelField(control.name, str);

                Rect rect = GUILayoutUtility.GetLastRect();
                rect.width = 28;
                GUI.Label(rect, m_ControlIndexStrings[i], Styles.labelRightAligned);
            }
            EditorGUI.indentLevel -= 2;
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndScrollView();

            InputSystem.isActive = wasActive;

            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Label("Events", GUILayout.MinWidth(100));
            Rect toolbarHandle = GUILayoutUtility.GetLastRect();

            Rect searchRect = GUILayoutUtility.GetRect(GUIContent.none, Styles.toolbarSearchField, GUILayout.MinWidth(140));

            if (m_Preview.GetExpanded())
            {
                m_EventSearchString = EditorGUI.TextField(searchRect, m_EventSearchString, Styles.toolbarSearchField);
                if (GUILayout.Button(
                        GUIContent.none,
                        m_EventSearchString == string.Empty ? Styles.toolbarSearchFieldCancelEmpty : Styles.toolbarSearchFieldCancel))
                {
                    m_EventSearchString = string.Empty;
                    EditorGUIUtility.keyboardControl = 0;
                }
            }

            GUILayout.EndHorizontal();

            float height = m_Preview.ResizeHandle(new Rect(toolbarHandle.x, position.y, toolbarHandle.width, position.height), 100, 250, 17);

            if (height > 0)
            {
                ShowEvents(height);
            }
        }