一.描述
用于访问资产和对资产执行操作的接口。
官网 : 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
参数指定一个或多个文件夹将限制搜索这些文件夹及其子文件夹。这比搜索所有文件夹中的所有资产要快。