using System.Collections; using System.Collections.Generic; using UnityEditor; using System.Linq; using System; using System.IO; using System.Text.RegularExpressions; namespace AssetBundleHubEditor { /// /// AssetGraphのLoaderを参考に作成 /// 特定のパスからファイルを抽出して返す。 /// public class LoadFromDirectory { public List ignore = new List(); //正規表現のリスト public static LoadFromDirectory CreateWithIgnoreDep() { var rtn = new LoadFromDirectory(); rtn.ignore.Add(".*Dep.*"); return rtn; } public List Run(string dirPath) { return AssetDatabase.FindAssets("", new string[] { dirPath }) .Select(guid => AssetDatabase.GUIDToAssetPath(guid)) .Where(p => Path.HasExtension(p) && !IsMatchIgnore(p)) // フォルダとignore取り除く .Distinct() .ToList(); } // ignoreの条件に当てはまるか bool IsMatchIgnore(string target) { foreach (var pattern in ignore) { if (Regex.IsMatch(target, pattern)) { return true; } } return false; } } }