Inspector Gadgets v6

Inspector Gadgets v6.9

  • Released 2021-10-31
  • Added Selection History window.
  • Fixed the rotation copy button in the Transform Inspector.
  • General code cleanup.

Inspector Gadgets v6.8

  • Released 2021-10-16
  • The "Override Transform Gizmos" feature can now be disabled in Inspector Gadgets Lite.
  • Added OnInspectorGUI method support to the [Inspectable] attribute so objects can implement that method to handle their own GUI.
  • Added Ping Object context menu function to Transform components.
  • Changed BaseInspectableAttribute.PrefixLabel to return the area of the following control.
  • Fixed IGUtils.GetDerivedTypes to not include the base type twice.
  • Fixed the Destroy Context Menu Function on Object Reference fields to not throw an exception when the referenced object is null.
  • Fixed Persist in Play Mode to work on Transform components.
  • Fixed Drag and Drop out of Object fields to not be started incorrectly if you pass over the field while dragging something else (such as a slider).

Inspector Gadgets v6.7

  • Released 2021-07-31
  • Dropped support for Unity 2018. Tested versions are now 2019.4 (LTS), 2020.3 (LTS), and 2021.1 (Latest Stable). Inspector Gadgets v6.6 is still available for Unity 2018.4 though.
  • DragAndDropSubAssets now allows sub-assets to be extracted by dropping them on their root asset instead of needing to target a folder.
  • Added Context Menu Functions to set the type of a [SerializeReference] field.
  • Added [Layer] attribute for drawing int fields as a dropdown menu to select a layer.
  • Added IGUtils.DefaultEditorState which can be set in the Edit/Preferences window. Inspectable attributes will now use that value unless specified otherwise in their constructor.
  • Improved the Paste Context Menu Function to trim prefixes and suffixes from the numbers.
  • Optimized Editor to not cause OnValidate and ISerializationCallbackReceiver.OnAfterDeserialize to be called continuously on all components shown in the Inspector (even though Unity's default Inspector does that).
  • Changed usage of SelectionMode.OnlyUserModifiable to Editable since the former is obsolete (and the latter is identical).
  • Changed ManagedReferenceHandler to use IGUtils.GetDerivedTypes instead of implementing the search itself.
  • Fixed the way Unity 2020+ generates C# project files using FixProjectDefinition to prevent it from referencing the Runtime-Only Lite DLLs.
  • Fixed IGUtils.GetDerivedTypes to support interfaces.
  • Fixed MissingScriptEditor.DestroyProperly to support multi-object selection.
  • Fixed the Transform Copy button to copy the displayed value instead of the local value.
  • Replaced the ReadMe.pdf with a text file since it didn't have any real detail anyway. This gives an 86% reduction in the package size of Inspector Gadgets Pro.

Serialization

  • Added support for inheritance in [SerializeReference] fields.
    • Changed Serialization.PropertyAccessor.FieldType to be private and accessible via GetFieldElementType.
    • Changed Serialization.PropertyAccessor.Field to be private and accessible via GetField.
    • Fixed Serialization.PropertyAccessor.ResetValue to run the constructor of the field's current type so that it can reset [SerializeReference] fields to the defaults of the current type instead of null.
  • Fixed SerializedPropertyContextMenu.GenericHandler to work properly for array fields.

Inspector Gadgets v6.6

  • Released 2021-04-16
  • Added Reset Context Menu Function for all fields to reset their value to the default of their type.
  • Added IGEditorUtils.OnSceneGUI for registering delegates to draw in the Scene GUI and automatically de-registering them when appropriate.
  • Added #ifs to allow certain Unity Modules to be disabled.
  • Changed default EditorState back to Always (reverting the change from Inspector Gadgets v6.4).
  • Fixed the code obfuscation used in the Inspector Gadgets Lite DLLs to prevent them from causing errors in IL2CPP builds.
  • Fixed ObjectDrawer to properly disable nesting when appropriate.
  • Fixed ObjectDrawer label to be correctly indented when EditorGUIUtility.hierarchyMode is false.
  • Fixed potential NullReferenceException in WatcherWindow after leaving Play Mode.
  • Fixed potential error when parsing clipboard text to find an object to paste into an object reference field.
  • Fixed SerializedPropertyContextMenu to disable all functions that modify the property when the GUI is disabled.
  • Fixed [Readonly] fields to show the property context menu when Right Clicked.

Inspector Gadgets v6.5

  • Released 2020-11-04
  • Improved the copy/paste system used by SerializedPropertyContextMenu so that it now works on all field types without needing individual implementations for each of them.
    • Object fields can now paste a value from the system clipboard by finding an object with that name.
  • Grouped context menu functions into sub-menus (Set, Randomize, Convert).
  • Fixed PositionDrawer.DrawTool to not throw an AmbiguousMatchException in Unity 2020.2.

Inspector Gadgets v6.4

  • Released 2020-09-29
  • Changed the default EditorState to Playing instead of Always since it is usually used by Inspectables which show non-serialized data and likely aren't very useful in Edit Mode.
  • Removed BlendShapeViewer since the SkinnedMeshRenderer Inspector now uses sliders for Blend Shape weights anyway.
  • Fixed the Transform Inspector fields to display correctly when using a different font.

Inspector Gadgets v6.3

  • Released 2020-09-15
  • Fixed build error caused by CommentAsset and CommentComponent.
  • Fixed Drag & Drop Sub-Assets to not allow certain asset types that won't work (since Unity is dumb and would just corrupt the asset instead of telling you) and to ask if it isn't sure about a particular type.
  • Fixed GetDefaultFileExtension to not throw an exception.

Inspector Gadgets v6.2

  • Released 2020-09-10
  • The Minimum Unity Version is now 2018.4 and it requires the .NET 4.x scripting runtime (the default for all new projects).
  • Fields in the Transform Inspector now use a smaller font size while displaying scientific notation (this can be disabled via the Edit/Preferences window.
  • Added Drag & Drop Sub-Assets system.
  • Improved Object Reference Fields:
    • If you drag and drop a GameObject with multiple valid components into a Component field, it will now display a context menu so you can select which one to assign.
    • You can now drag and drop out of Object fields (Unity only lets you drop references in by default).
    • Replaced the H/S/A buttons with a single Get button that uses IGUtils.ProgressiveSearch to find a reference. The individual methods can still be accessed via the context menu.
    • The context menu now displays the file path of the referenced asset or relative path to the referenced Component.
    • Added a Pick Component from List context menu function.
    • Excluded RuntimeAnimatorController from nested object drawers.
  • Added Transform/Remove All Components context menu function.
  • Added Randomize 0-CurrentValue context menu function for float fields.
  • Added public API for adding objects and properties to the WatcherWindow.
  • Changed the default keyboard shortcuts for Reset Selected Transforms and Snap to Grid to use Alt instead of Shift.
  • Changed IGUtils.ProgressiveSearch to include inactive objects.
  • Changed Preferences to use the new SettingsProvider class introduced in Unity 2018.3.
  • Changed ScriptableObjectEditor to display its message about changes being undone when exiting Play Mode as a warning rather than info and only in Play Mode.
  • Reorganised SerializedPropertyAccessor and related utilities into the Serialization namespace and improved their reliability.
  • Fixed AutoHideUI to un-hide the UI layer if Inspector Gadgets is deleted.
  • Fixed some minor issues with the Transform Inspector layout in Unity 2019.3+.
  • Fixed the World Scale display to not flicker between 1 and 0.9999999 while rotating an object.
  • Fixed rotation snap button to properly update the displayed euler angles.
  • Fixed TransformPropertyDrawer mini buttons to apply to their corresponding property instead of the previously drawn one.
  • Fixed TransformPropertyDrawer to use the correct menu function path for the Snap Settings in Unity 2019.3+.
  • Fixed WatcherWindow to use the ViewToolOrbit icon in Unity 2019.3+ (since UnityEditor.LookDevView no longer exists).
  • Fixed ObjectDrawer to always reset the font style after using italics for self-references.
  • Fixed NullReferenceException in CommentEditor.

Inspector Gadgets v6.1

  • Released 2019-07-08
  • Fixed Transform Inspector mini buttons to be linked to the correct properties.
  • Fixed ObjectDrawer [H] button to be drawn in the correct location.

Inspector Gadgets v6.0

  • Released 2019-07-02.

Major Features

  • Inspector Gadgets Pro is now delivered as regular scripts instead of a pre-compiled DLL to make it easier to view and modify the source code. Also reorganized the namespaces.

Warning: when upgrading from an earlier version you must delete the old version before importing the new one. This will also cause any Inspector Gadgets components (such as CommentComponent) in your project to go missing so you will need to set them all up again. This is an unfortunate side effect of the way Unity handles references to scripts inside a DLL compared to regular script files.

  • Added Persist After Play Mode context menu function to all serialized properties.
  • Added [OnOpenAsset] functions which are triggered when you hold certain modifier keys and Double Click on an asset in the Project window:
    • Alt + Double Click on a prefab to Instantiate it in the scene.
    • If you hold Ctrl as well it will also focus the camera on the instance.
    • Ctrl + Shift + Alt + Double Click any asset to open its folder in your OS file explorer.
  • Added context menu handler for AnimationCurve properties with several functions: Smooth Tangents, Flip Horizontal, Flip Vertical, Enforce Horizontal Symmetry, Extend Mirrorred.

Minor Features

  • Added AutoHideUI.ToggleEnabled context menu function for RectTransform, Canvas, and UIBehaviour components.
  • Added preferences to modify the Transform Inspector field colors.
  • Added Assets/Create/Shortcut function to create an asset which creates a quick link to another folder in the project similar to a Windows Shortcut. Simply assign a Target in the Inspector then you can double click the asset to go to the Target.
  • Added BlendShapeViewer - Whenever you select a SkinnedMeshRenderer which has any Blend Shapes it will automatically add a BlendShapeViewer component to display them as user-friendly sliders. That Component will be automatically removed when you deselect the object and will not be saved in the scene.
  • Added StaticLazyStack from BeTweeny.
  • Added CommentAsset and renamed Comment to CommentComponent.
  • Added IGUtils.DoInspectableGUI so custom Inspectors that don't inherit from InspectorGadgets.Editor<T> can still use inspectable attributes (for OdinInspector compatability).
  • Added AutoPref<T>.OnValueChanged callback.
  • Added IGUtils.CollapseAllComponents context menu function on Transforms to collapse or expand all components at once.
  • Added MethodCache for easily retrieving methods with a specific signature from any provided object.
  • Added an OverridePropertyGUI event for altering the GUI of specific properties.
  • Added OnPropertyContextMenu event for adding extra functions to the context menu of a property.
  • Added a context menu function to ScriptyHunterWindow to destroy all missing scripts.

Improvements

  • Improved the layout of WatcherWindow and added the ability to watch entire objects as well as individual fields.
  • IGEditorUtils.FindAssetOfType can now find Components on the root of a prefab instead of never finding anything for them.
  • Added an optional background to the Scene view distance moved labels so they are easier to read.
  • Scene view distance moved labels now show the distance on each individual axis as well (with an option to disable).
  • Added string parameter constructor to the [Color] attribute so you can either use standard colours from the UnityEngine.Color class such as "red" or colors from your own static fields and properties in the form "TypeName.StaticProperty".
  • Added a message to ScriptableObjectEditor explaining that changes in play mode will persist.
  • Added the IGUtils.GetSerializedPropertyContext to support copy and paste on serialized properties with Ctrl + C and Ctrl + V.
  • Added SerializedObjectReference for serializing references to Objects alongside their Instance ID in case the direct reference is lost when entering or exiting Play Mode.
    • SerializedPropertyReference now uses SerializedObjectReferences, which fixes the PropertyWatcherWindow so it doesn't lose its references when changing modes.
  • IGEditorUtils.ForEachTarget will now always record an Undo.
  • The Transform Inspector paste button tooltip will now be updated in response to changes in the system copy buffer.
  • ScriptyHunterWindow can now find and destroy non-prefab assets.
  • Changed Validator Attributes to use longs and doubles instead of ints and floats.

Changes

  • Dropped support for Unity 5.6.
  • Changed New Locked Inspector keyboard shortcut to Ctrl + Alt + I.
  • Changed the Auto Hide UI show condition to check for any non-world-space Canvas on the object or a parent instead of looking for UIBehaviours in parents and children.
  • The Show Position Labels setting is now disabled by default. Feedback indicates that they aren't particularly useful, but the option is still there.
  • Flipped true/false order on the label array in the Toolbar attribute constructor to be consistent with boolean logic. Label 0 is now false and 1 is true.
  • Changing any AutoPref will now repaint all GUI views.
  • The Nested Object Drawer now excludes AudioClips since it doesn't work for them.
  • Moved most string constants into Constants.
  • Removed the SetHideFlags script because you can just set the EditorOnly tag to achieve the same thing.
  • Removed MonoBehaviour/Find References menu items because they weren't really that useful.
  • Removed editor event attributes [OnWillUnloadAssemblies] and [OnEditorQuit] as Unity already has events for them: AssemblyReloadEvents.beforeAssemblyReload and EditorApplication.quitting respectively.
  • The Watch and Persist After Play Mode commands now work properly when multiple objects are selected.

Fixes

  • Fixed errors in Unity 2018.3+ caused by the obfuscation in the Lite DLLs. They were harmless and didn't actually stop anything from working, they were simply annoying.
  • Fixed undoing a script type change to not cause GUI errors.
  • Fixed TransformEditor layout when drawn outside the Inspector (such as in the WatcherWindow and nested object drawers).
  • Fixed [Inspectable] attribute to catch exceptions while drawing.
  • Fixed TransformEditor.HandleOffset to get a field instead of a property (as changed in Unity 2017.1).
  • Fixed incorrect constructor parameters in AutoPrefs.EditorVector2.
  • ScriptyHunterEditor can now destroy sub assets properly.