Inside an EditorWindow with UIToolkit, I am drawing the content of a scriptable object with an InspectorElement that generate a IMGUIContainer. How can I listen to any change happening in this IMGUIContainer?
_levelInspector = new InspectorElement(_selectedLevel)
{
dataSourceType = typeof(Level)
};
rootVisualElement.Add(_levelInspector);
// ...
_levelInspector.Bind(new SerializedObject(_selectedLevel));
_imguiLevelContainer = _levelInspector.Q<IMGUIContainer>();
// This doesn't work because my editor would need to be drew between the change check but it's already being drawn
_imguiLevelContainer.onGUIHandler = () =>
{
EditorGUI.BeginChangeCheck();
if (EditorGUI.EndChangeCheck())
{
_levelListView.Rebuild();
Debug.Log("Did change");
}
};
It looks like I can listen to changes with TrackSerializedObject :
SerializedObject so = new SerializedObject(_myObject);
_imguiContainer.Bind(so);
_imguiContainer.TrackSerializedObjectValue(so, (serializedObject) =>
{
Debug.Log("On changed");
});