Есть скрипт, унаследованный от MonoBehaviour и повешенный на объект, вот его содержимое:
public class NPCActionsQueue : MonoBehaviour
{
public int RandomFactor { get; set; }
public int TimeInterval { get; set; }
public List<BehaviorPoint> BehaviorPoints { get; set; }
}
Так как он содержит список сложных самописных классов, которые Unity, что логично, отображать в инспекторе не умеет, решил написать свой кастомный.
[CustomEditor(typeof(NPCActionsQueue))]
public class ActionsQueueEditor : Editor
{
...
Но вот тут столкнулся с проблемой:
Если использовать в качестве объекта для работы с данными внутри ActionsQueueEditor
this.target
То всё прекрасно, отображается, добавляется, меняется, но... не сохраняется. После перезапуска редактора, перехода на разные сцен или даже изменения какого-то из задействованных скриптов, все внесённые через инспектор данные удаляются.
Решил использовать serializedObject и его методы
serializedObject.Update();
... тут рисуется редактор
serializedObject.ApplyModifiedProperties();
Но проблема в том, что в момент инициализации скрипта я пытаюсь получить свойства, но они всё время равны null'ю
Хотя, если посмотреть через отладку, скрипт нужный подтянулся и данные в нём видно
Однако же, в переменной после FindProperty null
Уверен, что просто упускаю какую-то мелочь
Версия Unity
2021.3.11f1