Заголовок уже говорит об этом ...Unity Editor Scripting: Как программно модифицировать CustomEditor SerializedProperty?
У меня есть собственный скрипт редактора для класса C# в Unity с тем, что пользователь может установить несколько параметров через интерфейс. Но есть один случай, когда некоторые сериализованные переменные в классе, принадлежащем классу CustomEditor, программно изменяются, и изменение не обновляется в инспекторе.
Как сообщить классу CustomEditor, что он должен обновлять измененную переменную?
Пример кода:
public class Foo
{
[SerializeField] private float value;
public void ChangeValue()
{
value = 1.0f;
}
}
[CustomEditor(typeof (Foo))]
internal class FooEditor : Editor
{
private Foo self;
private SerializedProperty value;
internal void OnEnable()
{
self = (target as Foo);
value = serializedObject.FindProperty("value");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
}
}
В Foo
Я хочу изменить value
VIS сценарий, но обновление значение не отражается в редакторе интерфейса при установке с помощью сценария (только тогда, когда пользователь изменяет его с помощью пользовательского интерфейса). Как я могу изменить это изменение, когда оно обновляется через скрипт?