- Home /
The question is answered, right answer was accepted
How to prevent a GUI element from changing until another is deselected?
So, I have a custom matrix inspector.
:
I want to use two integers property fields to represent the dimensions of the matrix, allowing you change the size of the matrix dynamically.
:
I already have all of this working, however if you type in a multi-digit number into either dimension, the matrix updates before you are done. What is the best way to approach this?
:
Basically, I want the matrix to only update it's size once I either have deselected the field, or once I have pressed the enter key. Anything to make it an explicit decision by the person changing it.
:
I have attempted to mess around with EditorGUIUtility.hotControl, but I cannot seem to get the ControlID of the fields I want to use in the first place.
Answer by Bunny83 · Jan 22, 2018 at 12:51 AM
You probably look for the Delayed attribute which can be added to a serialized field. It will make the editor use a delayed editor that will update the value when you have finished editing it. That is when you press enter or if you unfocus the editor.
If you write a custom inspector and want to manually show such a field you can use EditorGUI.DelayedTextField / DelayedIntField / ...
That worked perfectly, thanks for you help! It's always the most obvious answers that you miss...
:
I'm marking this as the answer.
--- expat
Follow this Question
Related Questions
Adjust the width/height of List property elements in the Inspector 1 Answer
Is it possible to have the sorting layer control in a custom inspector? 1 Answer
OnInspectorGUI with prefabs 2 Answers
Inspector issue about draw Button(s) on top of EditorGUI fields, and "CLICK" on it. 1 Answer
Using a CustomEditor in the inspector and also seeing normal inspector fields 1 Answer