Esempio n. 1
0
        /// <summary>
        /// 加载配置文件
        /// </summary>
        private static void LoadSettingData()
        {
            _setting = EditorHelper.LoadSettingData <AssetBundleCollectorSetting>();

            // IPackRule
            {
                // 清空缓存集合
                _cachePackRuleTypes.Clear();
                _cachePackRuleInstance.Clear();

                // 获取所有类型
                List <Type> types = new List <Type>(100)
                {
                    typeof(PackSeparately),
                    typeof(PackDirectory),
                    typeof(PackTopDirectory),
                    typeof(PackCollector),
                    typeof(PackGroup),
                    typeof(PackRawFile),
                };

                var customTypes = EditorTools.GetAssignableTypes(typeof(IPackRule));
                types.AddRange(customTypes);
                for (int i = 0; i < types.Count; i++)
                {
                    Type type = types[i];
                    if (_cachePackRuleTypes.ContainsKey(type.Name) == false)
                    {
                        _cachePackRuleTypes.Add(type.Name, type);
                    }
                }
            }

            // IFilterRule
            {
                // 清空缓存集合
                _cacheFilterRuleTypes.Clear();
                _cacheFilterRuleInstance.Clear();

                // 获取所有类型
                List <Type> types = new List <Type>(100)
                {
                    typeof(CollectAll),
                    typeof(CollectScene),
                    typeof(CollectPrefab),
                    typeof(CollectSprite)
                };

                var customTypes = EditorTools.GetAssignableTypes(typeof(IFilterRule));
                types.AddRange(customTypes);
                for (int i = 0; i < types.Count; i++)
                {
                    Type type = types[i];
                    if (_cacheFilterRuleTypes.ContainsKey(type.Name) == false)
                    {
                        _cacheFilterRuleTypes.Add(type.Name, type);
                    }
                }
            }

            // IAddressRule
            {
                // 清空缓存集合
                _cacheAddressRuleTypes.Clear();
                _cacheAddressRuleInstance.Clear();

                // 获取所有类型
                List <Type> types = new List <Type>(100)
                {
                    typeof(AddressByFileName),
                    typeof(AddressByCollectorAndFileName),
                    typeof(AddressByGroupAndFileName)
                };

                var customTypes = EditorTools.GetAssignableTypes(typeof(IAddressRule));
                types.AddRange(customTypes);
                for (int i = 0; i < types.Count; i++)
                {
                    Type type = types[i];
                    if (_cacheAddressRuleTypes.ContainsKey(type.Name) == false)
                    {
                        _cacheAddressRuleTypes.Add(type.Name, type);
                    }
                }
            }
        }
Esempio n. 2
0
 private List <Type> GetEncryptionServicesClassTypes()
 {
     return(EditorTools.GetAssignableTypes(typeof(IEncryptionServices)));
 }