1. 程式人生 > >Unity API(五) ------ AssetDatabase

Unity API(五) ------ AssetDatabase

一.描述

用於訪問資產和對資產執行操作的介面。

官網 : https://docs.unity3d.com/ScriptReference/AssetDatabase.html

二.API

1.靜態方法

AddObjectToAsset 將objectToAdd新增到路徑中的現有資產。
AssetPathToGUID 獲取路徑資產的GUID。
ClearLabels 刪除附加到資產的所有標籤。
Contains 物件是資產嗎?
CopyAsset 在路徑上覆制資產並將其儲存在newPath中。
CreateAsset 在路徑上建立新資產。
CreateFolder 新建一個資料夾。
DeleteAsset 刪除路徑中的資產檔案。
ExportPackage 將assetPathNames標識的資產匯出到fileName中的unitypackage檔案。
ExtractAsset 通過從匯入的資源(例如FBX檔案)中提取外部資產,從物件(例如材質)建立外部資產。
FindAssets 使用搜索過濾器字串搜尋資產資料庫。
ForceReserializeAssets 強制載入並重新序列化給定資產,將任何未完成的資料更改重新整理到磁碟。
GenerateUniqueAssetPath 為資產建立新的唯一路徑。
GetAllAssetBundleNames 返回資產資料庫中的所有AssetBundle名稱。
GetAssetBundleDependencies 給定assetBundleName,返回它依賴的AssetBundle列表。
GetAssetDependencyHash 返回資產的所有依賴項的雜湊值。
GetAssetOrScenePath 返回相對於儲存資產的專案資料夾的路徑名。
GetAssetPath 返回相對於儲存資產的專案資料夾的路徑名。
GetAssetPathFromTextMetaFilePath 獲取與文字.meta檔案關聯的資產檔案的路徑。
GetAssetPathsFromAssetBundle 獲取已使用給定assetBundle名稱標記的資產的路徑。
GetAssetPathsFromAssetBundleAndAssetName 獲取標有assetBundleName且命名為assetName的所有資產的資產路徑。
GetCachedIcon 在給定資產路徑中檢索資產的圖示。
GetCurrentCacheServerIp 獲取編輯器當前正在使用的快取伺服器的IP地址。
GetDependencies 給定pathName,返回它依賴的所有資產的列表。
GetImplicitAssetBundleName 返回給定資產所屬的AssetBundle的名稱。
GetImplicitAssetBundleVariantName 返回給定資產所屬的AssetBundle Variant的名稱。
GetLabels 返回附加到給定資產的所有標籤。
GetMainAssetTypeAtPath 返回assetPath處的主資產物件的型別。
GetSubFolders 給定Assets資料夾中目錄的路徑,相對於專案資料夾,此方法將返回其所有子目錄的陣列。
GetTextMetaFilePathFromAssetPath 獲取與資產關聯的文字.meta檔案的路徑。
GetUnusedAssetBundleNames 返回資產資料庫中所有未使用的assetBundle名稱。
GUIDToAssetPath 將GUID轉換為其當前資產路徑。
ImportAsset 在路徑匯入資產。
ImportPackage 將packagePath中的包匯入當前專案。
IsForeignAsset 確定資產是否為外國資產。
IsMainAsset 資產是專案視窗中的主要資產嗎?
IsMainAssetAtPathLoaded 如果assetPath中的主資產物件已載入到記憶體中,則返回true。
IsMetaFileOpenForEdit 查詢資產的元資料(.meta)檔案是否在版本控制中開啟以進行編輯。
IsNativeAsset 確定資產是否為本機資產。
IsOpenForEdit 查詢資產檔案是否在版本控制中開啟以進行編輯。
IsSubAsset 資產是否構成另一項資產的一部分?
IsValidFolder 給定資料夾的路徑,如果存在則返回true,否則返回false。
LoadAllAssetRepresentationsAtPath 返回assetPath處的所有子資產。
LoadAllAssetsAtPath 返回assetPath上所有Assets的陣列。
LoadAssetAtPath 返回給定路徑assetPath處的型別型別的第一個資產物件。
LoadMainAssetAtPath 返回assetPath的主資產物件。
MoveAsset 將資產檔案(或資料夾)從一個資料夾移動到另一個資料夾。
MoveAssetToTrash 將資產在路徑上移動到垃圾箱。
OpenAsset 開啟具有關聯應用程式的資產。
Refresh 匯入任何已更改的資產
ReleaseCachedFileHandles 呼叫此函式將釋放Unity內部快取的檔案控制代碼。這允許安全地修改資產或元檔案,從而避免潛在的檔案共享IO錯誤。
RemoveAssetBundleName 從資產資料庫中刪除assetBundle名稱。forceRemove標誌用於指示您是否要刪除它,即使它正在使用中。
RemoveUnusedAssetBundleNames 刪除資產資料庫中所有未使用的assetBundle名稱。
RenameAsset 重新命名資產檔案。
SaveAssets 將所有未儲存的資產更改寫入磁碟。
SetLabels 替換資產上的標籤列表。
SetMainObject 指定資產檔案中的哪個物件在下次匯入後應成為主物件。
StartAssetEditing 開始資產匯入。這使您可以將多個資產匯入組合成一個較大的匯入。
StopAssetEditing 停止資產匯入。這使您可以將多個資產匯入組合成一個較大的匯入。
TryGetGUIDAndLocalFileIdentifier 警告使用帶有long localId引數的過載。使用帶有整數localId引數的過載可能會導致localId中出現整數溢位。當傳遞給API的物件是Prefab的一部分時,可能會發生這種情況。從物件例項id獲取GUID和本地檔案ID。
ValidateMoveAsset 檢查資產檔案是否可以從一個資料夾移動到另一個資料夾。(沒有實際移動檔案)。
WriteImportSettingsIfDirty 將匯入設定寫入磁碟。

2.事件

importPackageCancelled 每當使用者取消包匯入時,都會引發回撥。
importPackageCompleted 每當程式包匯入成功完成時都會引發回撥。
importPackageFailed 程式包匯入失敗時會引發回撥。
importPackageStarted 每當包匯入開始時都會引發回撥。

3.委託

ImportPackageCallback 委託從AssetDatabase.ImportPackage回撥中呼叫。packageName是引發回撥的包的名稱。
ImportPackageFailedCallback 委託從AssetDatabase.ImportPackage回撥中呼叫。packageName是引發回撥的包的名稱。errorMessage是失敗的原因。

三.使用

因為使用到了AssetDatabase .FindAssets才來看這個類中的函式,覺得這個挺有用的

返回值: 

string [] 匹配資產的陣列。請注意,將返回GUID。

引數 :

過濾 過濾字串可以包含搜尋資料。有關此字串的詳細資訊,請參閱
searchInFolders 搜尋將開始的資料夾。

過濾 :

名稱:按檔名過濾資產(不帶副檔名)。由空格分隔的單詞被視為單獨的名稱搜尋。因此,例如"test asset",是要搜尋的資產的名稱。請注意,name:可用於標識資產。此外,過濾器中使用的名稱string可以指定為子部分。test asset例如,可以使用匹配上面的示例test

標籤:資產可以貼上標籤。可以在每個標籤前使用關鍵字“l:”找到具有特定標籤的資產。這表示該字串正在搜尋標籤。

型別:根據明確標識的型別查詢資產。關鍵字“t:”用作指定要查詢的型別資產的方法。如果過濾器中包含多個型別string,則將返回與一個類匹配的資產。型別可以構建為型別,也可以是Texture2D使用者建立的指令碼類。使用者建立的類是從專案中的ScriptableObject類建立的資產。如果需要所有資產,則使用Object從Object派生的所有資產。使用searchInFolders引數指定一個或多個資料夾將限制搜尋這些資料夾及其子資料夾。這比搜尋所有資料夾中的所有資產要快。