Auto Updating Custom Inspectors for Unity

The Problem:  You wrote a custom inspector for Unity, subclassing the Editor class, after using the inspector you found that it is only updating when you interact with it.  Values are changing continuously during Update() calls from the MonoBehaviour so there is no other event with which you can tie your inspector Repaint().

Solution:  I’d recommend tying your Editor.Repaint() to some event if possible, but if not I’d recommend putting a lambda on your MonoBehaviour which gets conditionally called if you are running your code in the Unity Editor inside your Update method.  Inside your inspectors OnInspectorGUI just set your targets lambda to something that will call your Editor’s Repaint Method.




  1. Here is an easier solution, Aaron: Simply add the following to your UnityEditor.Editor child

    public override bool RequiresConstantRepaint()
    return true;

    1. Hey cool Gary, I didn’t see that. Looks like it got added in 4.3. This is exactly what I needed, thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *