AssetDatabase是一个API,它允许您访问您的项目中的资源。它提供了查找资源、加载资源、创建资源,删除资源和修改资源的方法。Unity编辑器内部使用AssetDatabase保持跟踪资源文件和保持资源与引用它们的对象之间的关联。由于Unity需要保持跟踪项目文件夹中的所有更改,如果你想访问或修改的资源数据,你应该始终使用AssetDatabase API,而不是文件系统。
AssetDatabase接口仅在编辑器中可用,在内置播放器没有这功能。
1.Unity的资源通常在拖动到项目时自动导入,但它也可以在脚本控制下导入——使用AssetDatabase.ImportAsset函数(方法):
using UnityEngine;using UnityEditor;
public class ImportAsset {
[MenuItem ("AssetDatabase/ImportExample")]
static void ImportExample ()
{
AssetDatabase.ImportAsset("Assets/Textures/texture.jpg", ImportAssetOptions.Default);
}}
2.可以使用脚本来加载和访问资源,使用
AssetDatabase.LoadAssetAtPath
,
AssetDatabase.LoadMainAssetAtPath
,
AssetDatabase.LoadAllAssetRepresentationsAtPath
and
AssetDatabase.LoadAllAssetsAtPath
。
using UnityEngine;using UnityEditor;
public class ImportAsset {
[MenuItem ("AssetDatabase/LoadAssetExample")]
static void ImportExample ()
{
Texture2D t = AssetDatabase.LoadAssetAtPath("Assets/Textures/texture.jpg", typeof(Texture2D)) as Texture2D;
}}
3.获取资源路径
string
assetPath =
AssetDatabase
.GetAssetPath (
Selection
.objects[
0
]);
4.创建资源
//在资源面板中生成一个mesh
AssetDatabase
.CreateAsset ( mesh ,
AssetDatabase
.GenerateUniqueAssetPath( AssetPath+
"/"
+AssetName ) +
".asset"
);
5.将资源保存到硬盘
AssetDatabase
.SaveAssets ();