Unity編輯器AssetDatabase函數API用法中文詳解-Chinar教程

Chinar blog www.chinar.xin

AssetDatabase 函數用法彙總


本文提供全流程,中文翻譯

助力快速理解 AssetDatabase API 用法

爲初學者節省寶貴的時間,避免採坑!

Chinar —— 心分享、心創新!

我們的初衷是將一種簡單的生活方式帶給世人

使有限時間 具備無限可能

Chinar 教程效果:



全文高清圖片,點擊即可放大觀看 (很多人竟然不知道)


1 Intro —— 簡介


AssetDatabase 類,在Unity 編輯器擴展中,是一個非常常用的類

其API函數,爲我們開發編輯器功能提供了許多便利

涉及、文件、路徑、目錄、資源移動等等…
舉個例子

英文好的直接傳送

AssetDatabase 官方文檔


AddObjectToAsset —— 添加對象到資源


  • AddObjectToAsset :添加 object 對象到現有資產中
    不能添加 GameObject,使用 PrefabUtility 可以

取相對路徑 Assets/

//創建一個材質球
Material material = new Material(Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/Chinar Specular Material.mat");
//給材質球 添加一個 animation clip
AnimationClip animationClip = new AnimationClip {name = "Chinar Clip"};
AssetDatabase.AddObjectToAsset(animationClip, material);
// 重新導入資源,否則更改並未生效。
// 如資源未執行重新導入,則會在項目保存時自動導入、生效
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));

舉個例子
在這裏插入圖片描述


CopyAsset —— 拷貝資源


  • CopyAsset :將指定文件拷貝一份,放至新路徑

取相對路徑 Assets/

var oldPath = "Assets/Resources/Old/Chinar Material.mat"; //指定路徑
var newPath = "Assets/Resources/New/Chinar Material.mat"; //拷貝至新路徑
AssetDatabase.CopyAsset(oldPath, newPath);                //路徑取相對路徑 Assets

舉個例子
在這裏插入圖片描述


2

Other —— 其他 Api


AddObjectToAsset 將objectToAdd添加到路徑中的現有資產。

AssetPathToGUID 在路徑中獲取資產的GUID。

清除標籤 刪除粘貼到資產的所有標籤。

包含 對象是資產嗎?
複製資產 在路徑上覆制資產並將其存儲在newPath中。

CreateAsset 在路徑上創建新資產。
創建文件夾 新建一個文件夾。

DeleteAsset 刪除路徑處的資產文件。
出口包裝 將assetPathNames標識的資產導出到fileName中的unitypackage文件。
提取資產 通過從導入的資產(例如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變體的名稱。
獲取標籤 返回附加到給定資產的所有標籤。

GetMainAssetTypeAtPath 返回assetPath上主要資產對象的類型。

GetSubFolders 給定Assets文件夾中相對於項目文件夾的目錄路徑,此方法將返回其所有子目錄的數組。

GetTextMetaFilePathFromAssetPath 獲取與資產關聯的文本.meta文件的路徑。

GetUnusedAssetBundleNames 返回資產數據庫中所有未使用的assetBundle名稱。

GUIDToAssetPath 將GUID轉換爲其當前資產路徑。

ImportAsset 在路徑處導入資產。
進口包裝 將packagePath中的package導入當前項目。

IsForeignAsset 確定資產是否爲外國資產。

IsMainAsset 資產是項目窗口中的主要資產嗎?

IsMainAssetAtPathLoaded 如果assetPath上的主要資產對象已加載到內存中,則返回true。

IsMetaFileOpenForEdit 查詢資產的元數據(.meta)文件是否已打開以在版本控制中進行編輯。

IsNativeAsset 確定資產是否爲本地資產。

IsOpenForEdit 查詢資產文件是否在版本控制中打開供編輯。

IsSubAsset 資產是否構成另一資產的一部分?

IsValidFolder 給定文件夾的路徑,如果存在,則返回true,否則返回false。

LoadAllAssetRepresentationsAtPath 返回assetPath的所有子資產。

LoadAllAssetsAtPath 返回assetPath處所有資產的數組。

LoadAssetAtPath 返回給定路徑assetPath處類型爲type的第一個資產對象。

LoadMainAssetAtPath 返回assetPath的主要資產對象。
移動資產 將資產文件(或文件夾)從一個文件夾移動到另一個文件夾。

MoveAssetToTrash 將資產移到垃圾箱。

OpenAsset 用關聯的應用程序打開資產。
刷新 導入所有更改的資產。

ReleaseCachedFileHandles 調用此函數將釋放由Unity內部緩存的文件句柄。這樣可以安全地修改資產或元文件,從而避免潛在的文件共享IO錯誤。

RemoveAssetBundleName 從資產數據庫中刪除assetBundle名稱。forceRemove標誌用於指示是否要刪除它,即使它正在使用中。

RemoveObjectFromAsset 從其資產中刪除對象(另請參見:AssetDatabase.AddObjectToAsset)。

RemoveUnusedAssetBundleNames 刪除資產數據庫中所有未使用的assetBundle名稱。
重命名資產 重命名資產文件。
保存資產 將所有未保存的資產更改寫入磁盤。
設置標籤 替換資產上的標籤列表。

SetMainObject 指定資產文件中的哪個對象在下一次導入後應成爲主要對象。

StartAssetEditing 開始資產導入。這使您可以將多個資產導入分組到一個較大的導入中。

StopAssetEditing 停止資產導入。這使您可以將多個資產導入分組到一個較大的導入中。

TryGetGUIDAndLocalFileIdentifier 警告使用帶有長localId參數的重載。將重載與整數localId參數一起使用會導致localId整數溢出。當傳遞給API的對象是Prefab的一部分時,可能會發生這種情況。從對象實例ID獲取
GUID和本地文件ID。

ValidateMoveAsset 檢查資產文件是否可以從一個文件夾移動到另一個文件夾。(實際上不移動文件)。

WriteImportSettingsIfDirty 將導入設置寫入磁盤。


支持

May Be —— 開發者,總有一天要做的事!


擁有自己的服務器,無需再找攻略

Chinar 提供一站式《零》基礎教程

使有限時間 具備無限可能!

先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)


Chinar 免費服務器、建站教程全攻略!( Chinar Blog )


Chinar

END

本博客爲非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均爲本人所擁有,本人保留所有法定權利。違者必究

對於需要複製、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯繫,留言,Email: [email protected]

對於經本博主明確授權和許可使用文章及內容的,使用時請註明文章或內容出處並註明網址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章