// Аналогично Update public override void OnInspectorGUI() { // Рисумем UI заданный по умолчанию DrawDefaultInspector(); // Обновляем, при изменении типа if (lastType != _target.type) { // Обновляем вид _target.UpdateView(); // Сбрасываем параметры на те, что сохранены в массиве var parametrs = _target.data.Find(x => x.type == _target.type).parametrs; _target.parametrs = new MyComponent.Parametrs(parametrs); // переназначаем последний тип lastType = _target.type; } // Изменяем массив при нажатии на кнопку if (GUILayout.Button("Применить")) { ApplyChanges(); } GUI.backgroundColor = new Color(0.5f, 0.5f, 0.5f, 1); if (GUILayout.Button("Сбросить")) { ResetChanges(); } // Обновление вида, без затрагивания массива _target.UpdateView(_target.parametrs.color, _target.parametrs.count); }
void OnEnable() { _target = (MyComponent)target; // сохраняем целевой объект как MyComponent lastType = _target.type; // сохраняем текущий тип _target.Init(); }