private static void DisplayOption(fiSerializationPackage package) { EditorGUILayout.LabelField(package.Title, EditorStyles.boldLabel); GUILayout.BeginHorizontal(); bool isDefault = false; if (fiInstalledSerializerManager.HasDefault) { isDefault = package.SerializerGuid == fiInstalledSerializerManager.DefaultMetadata.SerializerGuid; } // show the remove/import button, depending on if the serializer is loaded if (fiInstalledSerializerManager.IsLoaded(package.SerializerGuid)) { EditorGUI.BeginDisabledGroup(package.CanRemove == false); GUI.color = Color.red; if (package.CanRemove == false) { // tooltips don't work on buttons, so just gray the remove button out GUI.color = Color.gray; } if (GUILayout.Button("Remove", GUILayout.ExpandHeight(true), GUILayout.Width(65))) { try { ShowCompileProgressBar("Removing Serializer", 0); Directory.Delete(package.PackageDirectory, true); } catch (Exception e) { Debug.LogWarning("When deleting " + package.PackageDirectory + ", caught exception\n" + e); } // The user might not be using .meta files, so we will silently ignore the meta // delete request try { File.Delete(package.PackageDirectory + ".meta"); } catch { } fiDefaultSerializerRewriter.GenerateFileExcluding(package.ProviderType, package.SerializerType); } GUI.color = Color.white; EditorGUI.EndDisabledGroup(); } else { if (GUILayout.Button("Import", GUILayout.ExpandHeight(true), GUILayout.Width(65))) { AssetDatabase.ImportPackage(package.PackagePath, /*interactive:*/ false); fiDefaultSerializerRewriter.GenerateFileIncluding(package.ProviderType, package.SerializerType); } } // show the set default button if active if (isDefault) { EditorGUI.BeginDisabledGroup(true); GUI.color = Color.green; GUILayout.Button("Default \u2713", GUILayout.ExpandHeight(true), GUILayout.Width(90)); GUI.color = Color.white; EditorGUI.EndDisabledGroup(); } else { EditorGUI.BeginDisabledGroup(!fiInstalledSerializerManager.IsLoaded(package.SerializerGuid)); if (GUILayout.Button("Set Default", GUILayout.ExpandHeight(true), GUILayout.Width(90))) { ShowCompileProgressBar("Changing Default Serializer", 0); fiDefaultSerializerRewriter.GenerateFileChangeDefault(package.ProviderType, package.SerializerType); } EditorGUI.EndDisabledGroup(); } EditorGUILayout.HelpBox(package.Description, MessageType.Info); GUILayout.EndHorizontal(); }