public void OnEnable() { this.me = (ImportExportSystem)base.target; this.editor = null; this.settingsProperty = serializedObject.FindProperty("settings"); this.entriesProperty = serializedObject.FindProperty("entries"); this.overwriteLocalFilesProperty = serializedObject.FindProperty("overwriteLocalFiles"); this.enableInEditorProperty = serializedObject.FindProperty("enableInEditor"); this.entriesList = new ReorderableList(serializedObject, this.entriesProperty, true, true, true, true); this.entriesList.drawHeaderCallback = (Rect rect) => { Rect left = rect; left.width = left.width * 0.5f; Rect right = left; right.x = left.x + left.width; EditorGUI.LabelField(left, "Game Object"); EditorGUI.LabelField(right, "Asset"); }; this.entriesList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { SerializedProperty element = this.entriesList.serializedProperty.GetArrayElementAtIndex(index); SerializedProperty gameObject = element.FindPropertyRelative("gameObject"); SerializedProperty scriptableObject = element.FindPropertyRelative("scriptableObject"); rect.height = rect.height * 0.75f; Rect left = rect; left.width = left.width * 0.5f; Rect right = left; right.x = left.x + left.width; EditorGUI.PropertyField(left, gameObject, new GUIContent()); EditorGUI.PropertyField(right, scriptableObject, new GUIContent()); }; this.importAsset = null; }
public static void ReserializeEntries(ImportExportSystem system) { string[] assetPaths = new string[system.Entries.Count]; int index = 0; foreach (ImportExportEntry entry in system.Entries) { assetPaths[index++] = AssetDatabase.GetAssetPath(entry.scriptableObject); } assetPaths = assetPaths.Distinct().ToArray(); AssetDatabase.ForceReserializeAssets(assetPaths); }