public override void OnInspectorGUI() { // Update serializedObject.Update(); // Get properties var propArena2Path = Prop("Arena2Path"); // Browse for Arena2 path EditorGUILayout.Space(); GUILayoutHelper.Horizontal(() => { EditorGUILayout.LabelField(new GUIContent("Arena2 Path", "The local Arena2 path used for development only."), GUILayout.Width(EditorGUIUtility.labelWidth - 4)); EditorGUILayout.SelectableLabel(dfUnity.Arena2Path, EditorStyles.textField, GUILayout.Height(EditorGUIUtility.singleLineHeight)); if (GUILayout.Button("Browse...")) { string path = EditorUtility.OpenFolderPanel("Locate Arena2 Path", "", ""); if (!string.IsNullOrEmpty(path)) { if (!DaggerfallUnity.ValidateArena2Path(path)) { EditorUtility.DisplayDialog("Invalid Path", "The selected Arena2 path is invalid", "Close"); } else { dfUnity.Arena2Path = path; propArena2Path.stringValue = path; dfUnity.EditorResetArena2Path(); } } } if (GUILayout.Button("Clear")) { dfUnity.EditorClearArena2Path(); EditorUtility.SetDirty(target); } }); // Prompt user to set Arena2 path if (string.IsNullOrEmpty(dfUnity.Arena2Path)) { EditorGUILayout.HelpBox("Please set the Arena2 path of your Daggerfall installation.", MessageType.Info); return; } // Display other GUI items DisplayOptionsGUI(); DisplayImporterGUI(); // Save modified properties serializedObject.ApplyModifiedProperties(); if (GUI.changed) EditorUtility.SetDirty(target); }
public override void OnInspectorGUI() { // Update serializedObject.Update(); #if UNITY_EDITOR_LINUX string message = string.Empty; message += "Linux users please set your Daggerfall installation path (i.e. parent folder of complete Daggerfall install) in Resources/fallback.ini then click 'Update Path' below."; message += " This is a temporary limitation to work around Inspector bugs in experimental Linux build."; EditorGUILayout.HelpBox(message, MessageType.Info); EditorGUILayout.SelectableLabel(dfUnity.Arena2Path, EditorStyles.textField, GUILayout.Height(EditorGUIUtility.singleLineHeight)); if (GUILayout.Button("Update Path")) { dfUnity.Arena2Path = string.Empty; dfUnity.EditorResetArena2Path(); } #else // Get properties var propArena2Path = Prop("Arena2Path"); // Browse for Arena2 path EditorGUILayout.Space(); GUILayoutHelper.Horizontal(() => { EditorGUILayout.LabelField(new GUIContent("Arena2 Path", "The local Arena2 path used for development only."), GUILayout.Width(EditorGUIUtility.labelWidth - 4)); EditorGUILayout.SelectableLabel(dfUnity.Arena2Path, EditorStyles.textField, GUILayout.Height(EditorGUIUtility.singleLineHeight)); if (GUILayout.Button("Browse...")) { string path = EditorUtility.OpenFolderPanel("Locate Arena2 Path", "", ""); if (!string.IsNullOrEmpty(path)) { if (!DaggerfallUnity.ValidateArena2Path(path)) { EditorUtility.DisplayDialog("Invalid Path", "The selected Arena2 path is invalid", "Close"); } else { dfUnity.Arena2Path = path; propArena2Path.stringValue = path; dfUnity.EditorResetArena2Path(); } } } if (GUILayout.Button("Clear")) { dfUnity.EditorClearArena2Path(); EditorUtility.SetDirty(target); } }); // Prompt user to set Arena2 path if (string.IsNullOrEmpty(dfUnity.Arena2Path)) { EditorGUILayout.HelpBox("Please set the Arena2 path of your Daggerfall installation.", MessageType.Info); return; } #endif // Display other GUI items DisplayOptionsGUI(); DisplayImporterGUI(); // Save modified properties serializedObject.ApplyModifiedProperties(); if (GUI.changed) { EditorUtility.SetDirty(target); } }