private static void ProcessConfigMenu(UntypedDataContainer container, SaveConfiguration config, bool isSaved) { if (isSaved) { foreach (ContainerTableEntry entry in config.GetContainerEntries()) { if (entry.container.Equals(container)) { config.GetContainerEntries().Remove(entry); EditorUtility.SetDirty(config); return; } } } else { string[] savedIDs = config.GetContainerEntries().Select(x => x.ID).ToArray(); if (savedIDs.Contains(container.name)) { config.GetContainerEntries().Add(new ContainerTableEntry(container.name + "_" + container.GetInstanceID(), container)); } else { config.GetContainerEntries().Add(new ContainerTableEntry(container.name, container)); } EditorUtility.SetDirty(config); } }
private void OnEnable() { container = (UntypedDataContainer)target; inspectorGUIMethod = container.GetType().GetMethod("OnContainerInspectorGUI", BindingFlags.NonPublic | BindingFlags.Instance); hasCustomInspectorMethod = container.GetType().GetMethod("HasCustomInspector", BindingFlags.NonPublic | BindingFlags.Instance); hasCustomInspector = (bool)hasCustomInspectorMethod.Invoke(container, null); }
public ContainerTableEntry(string ID, UntypedDataContainer container) { this.ID = ID; this.container = container; }