コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public ContainerTableEntry(string ID, UntypedDataContainer container)
 {
     this.ID        = ID;
     this.container = container;
 }