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(); }
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()); }