public static string[] SearchAssetDatabase(string assetsFilter = null,
FilenameFilter filter = null) {
HashSet<string> matchingEntries = new HashSet<string>();
assetsFilter = assetsFilter != null ? assetsFilter : "t:Object";
foreach (string assetGuid in AssetDatabase.FindAssets(assetsFilter)) {
string filename = AssetDatabase.GUIDToAssetPath(assetGuid);
if (filter == null || filter(filename)) {
matchingEntries.Add(filename);
}
}
string[] entries = new string[matchingEntries.Count];
matchingEntries.CopyTo(entries);
return entries;
}