What Is Power Inspector?
Power Inspector is not just another Custom Editor inside the default inspector, but instead it completely flips the script; it is a totally new window that replicates all the features of the original inspector - and then adds a lot more on top of that.
If I’ve done my job right, Power Inspector should feel comfortably familiar to pick up, even though under the hood everything has changed.
This has been a massive project that’s been years in the making with more than
100 000 lines of code.
Why Go Through All This Trouble?
The goal with this project has been to gain access to the minute details of the inspector’s functionality, so that it becomes possible to start eliminating pain points and improving workflow at a much deeper level than previously possible.
For example, the way that you move control focus with the keyboard arrows in the default inspector has always bugged me. But with the default inspector it was basically impossible to do anything about this, because I could not get detailed information about all the elements inside the inspector view. With Power Inspector this is no longer an issue, configuring every aspect of the inspector experience was now a possibility, and I could implement perfect keyboard support.
And once the foundations had been laid, I could really start going crazy and keep implementing feature after feature on top of this new framework.
Asset Store - Buy Power Inspector
Webpage - Find the blog, contact information…
Online Documentation - Full details on features
Issue Tracker - Report and track bugs
Join Mailing List - Be in the know
Features
Search Box
All the other main views in Unity have a search box, so I though why not the inspector too?
There are currently seven different filtering modes that can be used. You can run, data, but you can’t hide!
read more
Split View
The inspector can be split into two parts in order to display the data of two targets simultaneously side by side. The middle mouse button can be used as a shortcut to open a mouseovered target in the split view (I call this “peeking”).
read more
Back and Forward Buttons
Back and forward buttons have been integrated into a toolbar above the inspector.
read more
Copy-Paste
I added copy-paste support to almost everything in the inspector. I use the system clipboard to hold the copied data, which has turned out to be a surprisingly convenient thing, making it easy to do things like backup any data from the inspector view into a text editor.
Pro tip: One of my favorite use cases for this is copying import settings from existing textures into ones that were just added to the project.
read more
Debug Mode+
I replicated the debug mode in the default inspector and extended it by adding support for viewing non-serialized members, fields with the HideInInspector attribute, hidden components, properties, methods and static class members.
Also I noticed that what I often wanted was to activate debug mode only temporarily and only for a single component, which is why I decided to add a new debug mode toggle button into the toolbar above every component.
read more
Quick Invoke Menu
I ran into this scenario often: I wanted to invoke a method in a class for testing purposes. To do this, I open the script in my script editor, add the ContextMenu attribute above the method, wait for scripts to recompile, and then I’m able to invoke the method from the context menu. If I was in play mode at the time, I have to restart my play session. Once I’m done testing, I have to repeat many of the same steps to remove the ContextMenu attribute too.
To streamline this process I added a button into the header of all Components and other UnityEngine.Objects that can be used to invoke methods at any time.
read more
Create Script Wizard
Creating new scripts and attaching them to targets is arguably fastest to do using the Add Component menu in the default inspector.
However all scripts are added to the root of your project, and inside the default namespace. In some projects I’ve worked on this has lead to the project root being full of unorganized scripts, and let me tell you it is not a fun situation to be in.
To combat this problem I hooked a script creation wizard into the Add Component button in Power Inspector. The idea is to combine fast script creation with the ability to quickly define where the scripts are saved and in which namespace. This saves you the trouble of having to move the scripts around later on, and then having to wait for scripts to recompile.
read more
Keyboard Friendly
Like I mentioned before, I rewrote the field focusing system inside the inspector from scratch so that everything works intuitively as it should.
I also added keyboard support to everywhere where I found it was missing. I feel that small things like being able to use page up, page down, home and end inside popup menus can do a lot for making it fun to use the keyboard for navigating inside the inspector.
I also introduced shortcuts for some common actions like copy (Ctrl+C), paste (Ctrl+V) and reset (backspace).
read more
Improved Tooltips
Tooltips can be a really useful tool for offering additional information about controls.
But how does the user know which controls have them and which not? I added a tooltip indicator so that users will always know when there’s additional information available for a field.
Also it found it irritating that I had to add the same information once using comments in code to get tooltips in my IDE, and then a second time using Unity’s Tooltip attribute to get tooltips in the inspector. To solve this issue I made it so that Power Inspector automatically generates tooltips from the comments in your code for all fields, properties and methods.
read more
Improved Script Editor
I found it really difficult to preview code of script assets inside the default inspector, because it had no syntax highlighting, and the combination of really wide tab character and word wrapping made it hard to keep discern which row you were on.
I made a new script editor that fixes everything that bugged me about the default script inspector.
read more
Target Window
To improve the working experience when using ultra-wide monitors or a multi-monitor setup, I made it possible to have different inspector windows for the hierarchy and project views.
read more
Plug and Play
Making Power Inspector work in plug-and-play fashion, and to keep it as decoupled from code as possible, was important to me.
I’ve had experiences in the past where some extension I was using started to get buggy with new Unity versions, but I was unable to easily remove it from my project because of the number of references I had to it in my code.
To help reduce this risk I tried to make as many features usable without needing to do any changes in code.
read more
More Information
You can find more in-depth explanations about all the features of Power Inspector in the Online Documentation.