Skip to content

Instantly share code, notes, and snippets.

@AsyncOperator
Created July 7, 2025 18:17
Show Gist options
  • Save AsyncOperator/e1729e9b5c14a0735b1514a3d9e19acf to your computer and use it in GitHub Desktop.
Save AsyncOperator/e1729e9b5c14a0735b1514a3d9e19acf to your computer and use it in GitHub Desktop.
Useful for quickly inspecting serialized/private fields or locking focus on selected objects. Ideal for debugging and advanced editor usage.
[Shortcut("AsyncOperator/Toggle Inspector Lock", KeyCode.Q, ShortcutModifiers.Alt)]
private static void ToggleInspectorLock()
{
if (ActiveEditorTracker.sharedTracker.activeEditors.Length > 0)
{
ActiveEditorTracker.sharedTracker.isLocked = !ActiveEditorTracker.sharedTracker.isLocked;
ActiveEditorTracker.sharedTracker.ForceRebuild();
}
}
[Shortcut("AsyncOperator/Toggle Inspector Mode", KeyCode.E, ShortcutModifiers.Alt)]
private static void ToggleInspectorMode()
{
Type type = typeof(EditorWindow).Assembly.GetType("UnityEditor.InspectorWindow");
EditorWindow editorWindow = EditorWindow.GetWindow(type);
if (editorWindow != null)
{
FieldInfo field = type.GetField("m_InspectorMode", BindingFlags.NonPublic | BindingFlags.Instance);
InspectorMode mode = (InspectorMode)field.GetValue(editorWindow);
mode = (mode == InspectorMode.Normal ? InspectorMode.Debug : InspectorMode.Normal);
MethodInfo method = type.GetMethod("SetMode", BindingFlags.NonPublic | BindingFlags.Instance);
method.Invoke(editorWindow, new object[] { mode });
editorWindow.Repaint();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment