예제 #1
0
        private static void AddRulesForSelection(XAssetBuildRules rules, string searchPattern)
        {
            var isDir = rules.searchPatternDir.Equals(searchPattern);

            foreach (var item in Selection.objects)
            {
                var path = AssetDatabase.GetAssetPath(item);
                var rule = new BuildRule
                {
                    searchPath    = path,
                    searchPattern = searchPattern,
                    nameBy        = isDir ? ENameBy.Directory : ENameBy.Path
                };
                ArrayUtility.Add(ref rules.rules, rule);
            }

            EditorUtility.SetDirty(rules);
            AssetDatabase.SaveAssets();
        }
예제 #2
0
        public string[] GetAssets()
        {
            var patterns = searchPattern.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            if (!Directory.Exists(searchPath))
            {
                Debug.LogWarning("Rule searchPath not exist:" + searchPath);
                return(new string[0]);
            }

            var getFiles = new List <string>();

            foreach (var item in patterns)
            {
                var files = Directory.GetFiles(searchPath, item, SearchOption.AllDirectories);
                foreach (var file in files)
                {
                    if (Directory.Exists(file))
                    {
                        continue;
                    }
                    var ext = Path.GetExtension(file).ToLower();
                    if ((ext == ".fbx" || ext == ".anim") && !item.Contains(ext))
                    {
                        continue;
                    }
                    if (!XAssetBuildRules.ValidateAsset(file))
                    {
                        continue;
                    }
                    var asset = file.Replace("\\", "/");
                    getFiles.Add(asset);
                }
            }

            return(getFiles.ToArray());
        }