Unity API(五) ------ AssetDatabase
阿新 • • 發佈:2018-12-12
一.描述
用於訪問資產和對資產執行操作的介面。
官網 : 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
引數指定一個或多個資料夾將限制搜尋這些資料夾及其子資料夾。這比搜尋所有資料夾中的所有資產要快。