? ? ? ? 需求上很簡(jiǎn)單,就是在編輯器下,找到某個(gè)制定文件下的所有特定資源(UnityEngine.Object)。Unity 沒(méi)有提供專門的 API,我一開(kāi)始想在網(wǎng)上搜索代碼,發(fā)現(xiàn)沒(méi)有現(xiàn)成可以直接用的。
? ? ? ? 功能實(shí)現(xiàn)本身并不復(fù)雜,代碼也比較直觀:
/// <summary>
/// 查找在某個(gè)文件夾下的所有類型資源
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="folder">工程中文件夾相對(duì)路徑</param>
/// <param name="result">返回搜索的結(jié)果</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);
//查詢?cè)撐募A下的所有文件;
var files = directory.GetFiles();
int length = files.Length;
for (int i = 0; i < length; i++)
{
var file = files[i];
//跳過(guò)Unity的meta文件(后綴名為.meta)
if (file.Extension.Contains("meta"))
continue;
//根據(jù)路徑直接拼出對(duì)應(yīng)的文件的相對(duì)路徑
string path = $"{folder}/{file.Name}";
var asset = AssetDatabase.LoadAssetAtPath<T>(path);
if (asset != null)
result.Add(asset);
}
}
? ? ? ? 其實(shí)就是借用 System.IO 的代碼,輔助實(shí)現(xiàn)了編輯器下的查詢。唯一值得注意的就是文件夾的路徑需要傳入一個(gè)相對(duì)路徑。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-651325.html
? ? ? ? 我的工程對(duì)應(yīng)的 Unity 版本為 2020.3.48f1。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-651325.html
到了這里,關(guān)于【Unity】編輯器下查找制定文件下的所有特定資源的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!