public void Inject(T value) { _value = value; _data.EditorContent = string.Empty; _data.EditorReferences.Clear(); using (var writer = new SerializedDataWriter(_data)) Save(writer, _value); _contentProperty.stringValue = _data.EditorContent; _referencesProperty.arraySize = _data.EditorReferences.Count; var i = 0; foreach (var reference in _data.EditorReferences) { _referencesProperty.GetArrayElementAtIndex(i++).objectReferenceValue = reference; } _contentProperty.serializedObject.ApplyModifiedProperties(); Update(_value); }
protected abstract void Save(SerializedDataWriter writer, T value);