public static void RunConfigCleanup() { if (configAssets == null) { configAssets = SavePortEditorUtils.FindAllAssetsOfType <SaveConfiguration>(); } foreach (SaveConfiguration config in configAssets) { List <ContainerTableEntry> emptyEntries = new List <ContainerTableEntry>(); foreach (ContainerTableEntry entry in config.GetContainerEntries()) { if (entry.container == null) { emptyEntries.Add(entry); } } foreach (ContainerTableEntry entry in emptyEntries) { config.GetContainerEntries().Remove(entry); } EditorUtility.SetDirty(config); } }
public override void OnInspectorGUI() { if (hasCustomInspector) { inspectorGUIMethod.Invoke(container, null); } else { DrawDefaultInspector(); } EditorGUILayout.Space(); GUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Runtime Value"); if (container.UntypedValue == null) { EditorGUILayout.SelectableLabel("null"); } else { EditorGUILayout.SelectableLabel(container.UntypedValue.ToString()); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Force Value Update Event")) { container.ForceUpdate(); } if (GUILayout.Button("Saving & Loading")) { GenericMenu menu = new GenericMenu(); List <SaveConfiguration> configurations = SavePortEditorUtils.FindAllAssetsOfType <SaveConfiguration>(); if (configurations.Count == 0) { EditorUtility.DisplayDialog("SavePort", "No SavePort configuration files were found in this project. Please create one to proceed.", "OK"); return; } menu.AddDisabledItem(new GUIContent("Select configuration")); foreach (SaveConfiguration config in configurations) { bool isSaved = ArrayUtility.Contains(config.GetContainerEntries().Select(x => x.container).ToArray(), container); menu.AddItem(new GUIContent(config.name), isSaved, () => ProcessConfigMenu(container, config, isSaved)); } menu.ShowAsContext(); } GUILayout.EndHorizontal(); }