protected override void ContextClickedItem(int id) { var item = FindItem(id, rootItem); if (item == null) { return; } if (item is DeviceItem deviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.openDebugView, false, () => InputDeviceDebuggerWindow.CreateOrShowExisting(deviceItem.device)); menu.AddItem(Contents.removeDevice, false, () => InputSystem.RemoveDevice(deviceItem.device)); if (deviceItem.device.enabled) { menu.AddItem(Contents.disableDevice, false, () => InputSystem.DisableDevice(deviceItem.device)); } else { menu.AddItem(Contents.enableDevice, false, () => InputSystem.EnableDevice(deviceItem.device)); } menu.ShowAsContext(); } }
protected override void ContextClickedItem(int id) { var item = FindItem(id, rootItem); if (item == null) { return; } if (item is DeviceItem deviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.openDebugView, false, () => InputDeviceDebuggerWindow.CreateOrShowExisting(deviceItem.device)); menu.AddItem(Contents.copyDeviceDescription, false, () => EditorGUIUtility.systemCopyBuffer = deviceItem.device.description.ToJson()); menu.AddItem(Contents.removeDevice, false, () => InputSystem.RemoveDevice(deviceItem.device)); if (deviceItem.device.enabled) { menu.AddItem(Contents.disableDevice, false, () => InputSystem.DisableDevice(deviceItem.device)); } else { menu.AddItem(Contents.enableDevice, false, () => InputSystem.EnableDevice(deviceItem.device)); } menu.ShowAsContext(); } if (item is UnsupportedDeviceItem unsupportedDeviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.copyDeviceDescription, false, () => EditorGUIUtility.systemCopyBuffer = unsupportedDeviceItem.description.ToJson()); menu.ShowAsContext(); } }
protected override void DoubleClickedItem(int id) { var item = FindItem(id, rootItem); if (item is DeviceItem deviceItem) { InputDeviceDebuggerWindow.CreateOrShowExisting(deviceItem.device); } }
private static void ResetDevice(InputDevice device, bool hard) { var playerUpdateType = InputDeviceDebuggerWindow.DetermineUpdateTypeToShow(device); var currentUpdateType = InputState.currentUpdateType; InputStateBuffers.SwitchTo(InputSystem.s_Manager.m_StateBuffers, playerUpdateType); InputSystem.ResetDevice(device, alsoResetDontResetControls: hard); InputStateBuffers.SwitchTo(InputSystem.s_Manager.m_StateBuffers, currentUpdateType); }
protected override void ContextClickedItem(int id) { var item = FindItem(id, rootItem); if (item == null) { return; } if (item is DeviceItem deviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.openDebugView, false, () => InputDeviceDebuggerWindow.CreateOrShowExisting(deviceItem.device)); menu.AddItem(Contents.copyDeviceDescription, false, () => EditorGUIUtility.systemCopyBuffer = deviceItem.device.description.ToJson()); menu.AddItem(Contents.removeDevice, false, () => InputSystem.RemoveDevice(deviceItem.device)); if (deviceItem.device.enabled) { menu.AddItem(Contents.disableDevice, false, () => InputSystem.DisableDevice(deviceItem.device)); } else { menu.AddItem(Contents.enableDevice, false, () => InputSystem.EnableDevice(deviceItem.device)); } menu.ShowAsContext(); } if (item is UnsupportedDeviceItem unsupportedDeviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.copyDeviceDescription, false, () => EditorGUIUtility.systemCopyBuffer = unsupportedDeviceItem.description.ToJson()); menu.ShowAsContext(); } if (item is LayoutItem layoutItem) { var layout = EditorInputControlLayoutCache.TryGetLayout(layoutItem.layoutName); if (layout != null) { var menu = new GenericMenu(); menu.AddItem(Contents.copyLayoutAsJSON, false, () => EditorGUIUtility.systemCopyBuffer = layout.ToJson()); if (layout.isDeviceLayout) { menu.AddItem(Contents.createDeviceFromLayout, false, () => InputSystem.AddDevice(layout.name)); } menu.ShowAsContext(); } } }
protected override void ContextClickedItem(int id) { var item = FindItem(id, rootItem); if (item == null) { return; } if (item is DeviceItem deviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.openDebugView, false, () => InputDeviceDebuggerWindow.CreateOrShowExisting(deviceItem.device)); menu.AddItem(Contents.copyDeviceDescription, false, () => EditorGUIUtility.systemCopyBuffer = deviceItem.device.description.ToJson()); menu.AddItem(Contents.removeDevice, false, () => InputSystem.RemoveDevice(deviceItem.device)); if (deviceItem.device.enabled) { menu.AddItem(Contents.disableDevice, false, () => InputSystem.DisableDevice(deviceItem.device)); } else { menu.AddItem(Contents.enableDevice, false, () => InputSystem.EnableDevice(deviceItem.device)); } menu.ShowAsContext(); } if (item is UnsupportedDeviceItem unsupportedDeviceItem) { var menu = new GenericMenu(); menu.AddItem(Contents.copyDeviceDescription, false, () => EditorGUIUtility.systemCopyBuffer = unsupportedDeviceItem.description.ToJson()); menu.ShowAsContext(); } if (item is LayoutItem layoutItem) { var layout = EditorInputControlLayoutCache.TryGetLayout(layoutItem.layoutName); if (layout != null) { var menu = new GenericMenu(); menu.AddItem(Contents.copyLayoutAsJSON, false, () => EditorGUIUtility.systemCopyBuffer = layout.ToJson()); if (layout.isDeviceLayout) { menu.AddItem(Contents.createDeviceFromLayout, false, () => InputSystem.AddDevice(layout.name)); menu.AddItem(Contents.generateCodeFromLayout, false, () => { var fileName = EditorUtility.SaveFilePanel("Generate InputDevice Code", "", "Fast" + layoutItem.layoutName, "cs"); var isInAssets = fileName.StartsWith(Application.dataPath, StringComparison.OrdinalIgnoreCase); if (isInAssets) { fileName = "Assets/" + fileName.Substring(Application.dataPath.Length + 1); } if (!string.IsNullOrEmpty(fileName)) { var code = InputLayoutCodeGenerator.GenerateCodeFileForDeviceLayout(layoutItem.layoutName, fileName, prefix: "Fast"); File.WriteAllText(fileName, code); if (isInAssets) { AssetDatabase.Refresh(); } } }); } menu.ShowAsContext(); } } }