private void SaveDefineGroup(int InEditorKey)
        {
            MacroDefineGroup group = defineGroup[InEditorKey];

            group.DefineGroup.Clear();
            int count = allDefine.Count;

            for (int i = 0; i < count; i++)
            {
                if (allDefine[i].IsSelected)
                {
                    group.DefineGroup.Add(allDefine[i]);
                }
            }

            defineGroup[InEditorKey] = group;
        }
        private void Load()
        {
            string allDefineStr;

            if (string.IsNullOrEmpty(allDefineStr = EditorPrefs.GetString(ScriptingDefineConfig.ALL_DEFINE_PREFS_KEY_S, string.Empty)))
            {
                //ADS; AD_DEBUG; UNIT_TEST
                allDefine = new List <MacroDefine>(32)
                {
                    new MacroDefine(ScriptingDefineConfig.TEST_MACRO_DEFINE_S, false),
                    new MacroDefine(ScriptingDefineConfig.DEBUG_MACRO_DEFINE_S, false)
                };

                defineGroup = new Dictionary <int, MacroDefineGroup>(16)
                {
                    {
                        0,
                        new MacroDefineGroup(ScriptingDefineConfig.EMPTY_MODE_NAME_S,
                                             null,
                                             false,
                                             false)
                    },
                    {
                        1,
                        new MacroDefineGroup(ScriptingDefineConfig.TEST_MODE_NAME_S,
                                             new List <MacroDefine>(16)
                        {
                            allDefine[0]
                        },
                                             false,
                                             true)
                    },
                    {
                        2,
                        new MacroDefineGroup(ScriptingDefineConfig.DEBUG_MODE_NAME_S,
                                             new List <MacroDefine>(16)
                        {
                            allDefine[1]
                        },
                                             false,
                                             true)
                    },
                    {
                        3,
                        new MacroDefineGroup(ScriptingDefineConfig.RELEASE_MODE_NAME_S,
                                             new List <MacroDefine>(16),
                                             false,
                                             true)
                    }
                };

                Save();
            }
            else
            {
                string[] allDefineItem = allDefineStr.Split(',');
                int      len           = allDefineItem.Length - 1;
                allDefine = new List <MacroDefine>(len > 32 ? len : 32);
                for (int i = 0; i < len; i++)
                {
                    allDefine.Add(MacroDefine.Convert(allDefineItem[i]));
                }

                string[] defineGroupItem = EditorPrefs.GetString(ScriptingDefineConfig.DEFINE_GROUP_PREFS_KEY_S).Split(',');
                len         = defineGroupItem.Length - 1;
                defineGroup = new Dictionary <int, MacroDefineGroup>(len > 16 ? len : 16);
                for (int i = 0; i < len; i++)
                {
                    defineGroup.Add(i, MacroDefineGroup.Convert(defineGroupItem[i]));
                }
            }
        }