public static void CheckForModifiedProperty <T>(SerializedProperty property, T targetObject, bool forceHasChanged = false) { MapboxDataProperty targetObjectAsDataProperty = GetMapboxDataPropertyObject(targetObject); if (targetObjectAsDataProperty != null) { targetObjectAsDataProperty.HasChanged = forceHasChanged || property.serializedObject.ApplyModifiedProperties(); } }
public static void CheckForModifiedProperty <T>(SerializedProperty property, T targetObject) { MapboxDataProperty targetObjectAsDataProperty = targetObject as MapboxDataProperty; if (property.serializedObject.ApplyModifiedProperties() && targetObjectAsDataProperty != null) { targetObjectAsDataProperty.HasChanged = true; } }
/// <summary> /// Adds the new instance to array. /// </summary> /// <param name="obj">Object.</param> public void AddNewInstanceToArray(object obj) { ScriptableObject asset = obj as ScriptableObject; _finalize.arraySize++; _finalize.GetArrayElementAtIndex(_finalize.arraySize - 1).objectReferenceValue = asset; MapboxDataProperty mapboxDataProperty = (MapboxDataProperty)EditorHelper.GetTargetObjectWithProperty(_finalize); if (_finalize.serializedObject.ApplyModifiedProperties() && mapboxDataProperty != null) { mapboxDataProperty.HasChanged = true; } }
void OnGUI() { if (_assets == null || _assets.Count == 0) { var list = AssetDatabase.FindAssets("t:" + _type.Name); _assets = new List <ScriptableObject>(); foreach (var item in list) { var ne = AssetDatabase.GUIDToAssetPath(item); var asset = AssetDatabase.LoadAssetAtPath(ne, _type) as ScriptableObject; _assets.Add(asset); } _assets = _assets.OrderBy(x => x.GetType().Name).ThenBy(x => x.name).ToList(); } var st = new GUIStyle(); st.padding = new RectOffset(15, 15, 15, 15); scrollPos = EditorGUILayout.BeginScrollView(scrollPos, st); for (int i = 0; i < _assets.Count; i++) { var asset = _assets[i]; if (asset == null) //yea turns out this can happen { continue; } GUILayout.BeginHorizontal(); var b = Header(string.Format("{0,-40} - {1, -15}", asset.GetType().Name, asset.name), i == activeIndex); if (b) { activeIndex = i; } if (GUILayout.Button(new GUIContent("Select"), header, GUILayout.Width(80))) { if (_act != null) { _act(asset); } else { if (_index == -1) { _finalize.arraySize++; _finalize.GetArrayElementAtIndex(_finalize.arraySize - 1).objectReferenceValue = asset; _finalize.serializedObject.ApplyModifiedProperties(); } else { _finalize.GetArrayElementAtIndex(_index).objectReferenceValue = asset; _finalize.serializedObject.ApplyModifiedProperties(); } } MapboxDataProperty mapboxDataProperty = (MapboxDataProperty)EditorHelper.GetTargetObjectOfProperty(_container); if (mapboxDataProperty != null) { mapboxDataProperty.HasChanged = true; } this.Close(); } GUILayout.EndHorizontal(); if (b) { EditorGUILayout.Space(); EditorGUI.indentLevel += 4; GUI.enabled = false; var ed = UnityEditor.Editor.CreateEditor(asset); ed.hideFlags = HideFlags.NotEditable; ed.OnInspectorGUI(); GUI.enabled = true; EditorGUI.indentLevel -= 4; EditorGUILayout.Space(); } EditorGUILayout.Space(); } EditorGUILayout.EndScrollView(); }
public static bool DidModifyProperty <T>(SerializedProperty property, T targetObject) { MapboxDataProperty targetObjectAsDataProperty = targetObject as MapboxDataProperty; return(property.serializedObject.ApplyModifiedProperties() && targetObjectAsDataProperty != null); }