? ? ? ? 需求上很簡單,就是在編輯器下,找到某個制定文件下的所有特定資源(UnityEngine.Object)。Unity 沒有提供專門的 API,我一開始想在網上搜索代碼,發(fā)現沒有現成可以直接用的。
? ? ? ? 功能實現本身并不復雜,代碼也比較直觀:
/// <summary>
/// 查找在某個文件夾下的所有類型資源
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="folder">工程中文件夾相對路徑</param>
/// <param name="result">返回搜索的結果</param>
public static void FindAssetInFolder<T>(string folder, List<T> result) where T : Object
{
if (result == null)
result = new List<T>();
result.Clear();
//定位到指定文件夾
if (!Directory.Exists(folder))
return;
var directory = new DirectoryInfo(folder);
//查詢該文件夾下的所有文件;
var files = directory.GetFiles();
int length = files.Length;
for (int i = 0; i < length; i++)
{
var file = files[i];
//跳過Unity的meta文件(后綴名為.meta)
if (file.Extension.Contains("meta"))
continue;
//根據路徑直接拼出對應的文件的相對路徑
string path = $"{folder}/{file.Name}";
var asset = AssetDatabase.LoadAssetAtPath<T>(path);
if (asset != null)
result.Add(asset);
}
}
? ? ? ? 其實就是借用 System.IO 的代碼,輔助實現了編輯器下的查詢。唯一值得注意的就是文件夾的路徑需要傳入一個相對路徑。文章來源:http://www.zghlxwxcb.cn/news/detail-676483.html
? ? ? ? 我的工程對應的 Unity 版本為 2020.3.48f1。文章來源地址http://www.zghlxwxcb.cn/news/detail-676483.html
到了這里,關于【Unity】編輯器下查找指定文件下的所有特定資源的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!