Unity遍歷資源下的所有檔案以及子檔案

2021-08-03 14:40:21 字數 1832 閱讀 9146

筆者介紹:姜雪偉,it公司技術合夥人,it高階講師,csdn社群專家,特邀編輯,暢銷書作者,已出版書籍:《手把手教你架構3d遊戲引擎》電子工業出版社和《unity3d實戰核心技術詳解》電子工業出版社等。

unity工具是遊戲製作必須配備的,unity雖然提供了強大的編輯器,但是對於遊戲開發的需求來說還是遠遠不夠的,這也需要我們自己編寫一些小工具去實現特定的需求,比如編寫遍歷資源檔案的所有子檔案用於打包處理,這些需要我們自己去封裝函式介面。

第一步,實現獲取儲存檔案以及子檔案的函式:

private static listgetresalldirpath()

if (ret != null)

ret.sort(ondirsort);

return ret;

}

該函式是對外提供的函式,它返回資源的所有檔案以及子檔案,在該函式中使用了介面
assetbundlebuild.getalllocalsubdirs(cassetsresourcespath);

第二步,實現遍歷所有子檔案函式,它採用的是迭代的遍歷:

public static listgetalllocalsubdirs(string rootpath)

for (int i = 0; i < dirs.length; ++i)

return ret;

}

在上述函式中呼叫了函式介面

assetbunbleinfo.getlocalpath(dirs[i]);

該介面的實現函式如下所示:

// 獲得根據assets目錄的區域性目錄

public static string getlocalpath(string path)

繼續介面的呼叫函式

getassetrelativepath

實現如下所示:

public static string getassetrelativepath(string fullpath)

最後乙個函式是direxistresource函式用於判斷檔案是否存在,它的實現**如下所示:

// 根據目錄判斷是否有資源檔案

public static bool direxistresource(string path)

else

if (resourceexts[j] == ".unity")

return true;}}

} return false;

}

**中的
resourceexts

是事先定義好的能夠遍歷到的副檔名,如下所示:

// 支援的資源檔案格式

private static readonly string resourceexts = ;

最後一步是判斷scene是否有效的函式介面:

isvaildsceneresource
實現**如下所示:

private static bool isvaildsceneresource(string filename)

}} return ret;

}

這樣遍歷所有資源下的檔案和子檔案的所有函式就完成了,放在工具**中實現即可。

遍歷指寫碟符下的所有檔案

很多以前寫的,可以遍歷指寫碟符下的所有檔案,以目錄的形式顯示出來,且資料夾用紅色粗體顯示.最後還統計總檔案的個數,所佔空間等等.dim check t check t 0 dim tab symbol tab symbol dim afiles,afolder,afilesize afiles 0 ...

python 快速遍歷路徑下的所有檔案

利用os 庫遍歷資料夾內的所有檔案 假設是最後一級目錄資料夾,即 daygoodscate color 資料夾內不再包含資料夾 import os import pandas as pd inputdir users zhyueln data daygoodscate color for root,...

Delphi下遍歷資料夾下所有檔案的遞迴演算法

在實際開發中經常需要遍歷某個資料夾及其子資料夾下的檔案,看到很多人不知道如何做,忍不住寫段東西與大家分享。procedure maketree var slfile tstrings const fileext string var sr tsearchrec err integer trsize,...