protected void AddRootTargets(AssetBundleBuildRuleData.Rule rule)
        {
            var bundleDir = new DirectoryInfo(rule.directory);
            //Debug.Log(bundleDir.FullName);
            var          patterns     = rule.patterns;
            SearchOption searchOption = rule.recursion ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;

            for (int i = 0; i < patterns.Length; i++)
            {
                FileInfo[] prefabs = bundleDir.GetFiles(patterns[i], searchOption);
                foreach (FileInfo file in prefabs)
                {
                    if (file.Extension.Contains("meta"))
                    {
                        continue;
                    }

                    AssetTarget target = AssetBundleUtils.Load(file);
                    target.exportType = AssetBundleExportType.Root;
                    if (!string.IsNullOrEmpty(rule.bundle))
                    {
                        target.SetBundleName(Path.Combine(rule.directory, rule.bundle));
                    }
                }
            }
        }
Beispiel #2
0
        public static void AddDummyRule(AssetBundleBuildRuleData.Rule rule)
        {
            //正则表达式转换
            List <string> newpa = new List <string>();

            foreach (var p in rule.patterns)
            {
                string pa = p;
                if (pa == "*.*")
                {
                    pa = "*";
                }
                pa = Regex.Escape(pa);          //转义
                pa = pa.Replace("\\*", ".*");   //处理 *
                pa = pa.Replace("\\?", ".?");   //处理 ?
                pa = "^" + pa + "$";            //首尾
                newpa.Add(pa);
            }
            rule.patterns = newpa.ToArray();

            _dummyRules.Add(rule);
        }