public static SerializedProperty GetChildNameProperty(NestedAsset child, out SerializedObject serializedObject) { var childObject = new SerializedObject(child); serializedObject = childObject; return(childObject.FindProperty("_name")); }
private void SetChildName(NestedAsset child, string name) { child.name = GetProperChildName(name); SerializedProperty _name = GetChildNameProperty(child, out var serializedObj); _name.stringValue = name; serializedObj.ApplyModifiedProperties(); }
private void DrawElementCallback(Rect rect, int index, bool isactive, bool isfocused) { SerializedProperty element = _childs.GetArrayElementAtIndex(index); rect.height -= (EditorGUIUtility.standardVerticalSpacing * 2); rect.y += EditorGUIUtility.standardVerticalSpacing; NestedAsset identifier = (NestedAsset)element.objectReferenceValue; SerializedProperty _name = GetChildNameProperty(identifier, out var child); child.Update(); EditorGUI.PropertyField(rect, _name); if (child.ApplyModifiedProperties()) { if (identifier.name != GetProperChildName(_name.stringValue)) { identifier.name = GetProperChildName(_name.stringValue); AssetDatabase.SaveAssets(); } } }