Editor Unity3D и обновление объекта из кода
Имеется коллекция PropertyDrawer, в которой одной из фишек предусмотрено вызов callback функций при изменении свойства в сериализованном объекте.
public sealed override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
try
{
label = SetBaseContent(label);
if (CheckHide(property)) return;
if (!IsSupported(property))
{
OutNotSupported(property, position, label);
}
else
{
EditorGUI.BeginChangeCheck();
Draw(position, property, label);
if (EditorGUI.EndChangeCheck())
{
EndChange(property); // вот здесь вызываются callbacks
}
}
label.tooltip = "";
}
catch (Exception exception)
{
LogError(exception.Message, property.serializedObject.targetObject);
}
}
Раньше все работало без проблем, когда обновился до 6 версии Unity, столкнулся с проблемой, что сам callback отрабатывает и свойства в объекте меняет, но после этого в редакторе никаких изменений не видно, как будто после завершения OnGUI, редактор обновляет объект и затирает изменения...
К сожалению сейчас мало с Unity вожусь, не в теме последних изменений, может кто подскажет, что изменилось и как с этим бороться...