赞
踩
AssetDatabase 类,在Unity 编辑器扩展中,是一个非常常用的类。
是对资源的管理,可以创建,查找,删除,等常用功能,一般在工具类里用的比较多,比如批量修改配置表参数,动态创建配置,查找指定文件等等
注意: AssetDatabase只能在编辑器下使用
中文官方文档
几个常用API示例:
AssetDatabase.CreateAsset
[MenuItem("Ming/CreateAsset")]
static void CreateAsset()
{
// 创建一个新的ScriptableObject类型资产
ScriptableObject newAsset = CreateInstance<ScriptableObject>();
// 设置资产的名称
newAsset.name = "NewAsset";
// 选择保存新资产的路径
string path = "Assets/NewAsset.asset";
// 使用AssetDatabase.CreateAsset方法创建新资产
AssetDatabase.CreateAsset(newAsset, path);
// 让Unity刷新资源数据库,使新资产在项目窗口中可见
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
AssetDatabase.LoadAssetAtPath
[MenuItem("Ming/LoadAsset")]
static void LoadAsset()
{
var go = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Resources/Cube.prefab");
Instantiate(go);
}
FindAssets
//查找所有名字中包含了 "psb" 的资源,包括脚本和文件夹,名字不区分大小写,返回其guid
var guids = AssetDatabase.FindAssets("psb");
//查找所有类型为 "GameObject"的资源,返回其guid
var guids = AssetDatabase.FindAssets("t:GameObject");
//查找所有标签为 "UI"的资源,返回其guid
var guids = AssetDatabase.FindAssets("l:UI");
//多种筛选条件可以组合使用,查找所有名字为go的GameObject,返回其guid
var guids = AssetDatabase.FindAssets("go t:GameObject");
//此外还可以限定查找范围,查找范围默认为Assets下所有文件
//查找Assets/_ZH/文件夹下所有名字为go的GameObject,返回其guid
var guids5 = AssetDatabase.FindAssets("go t:GameObject", new string[] { "Assets/_ZH/" });
GUIDToAssetPath
DeleteAsset
CreateFolder
RenameAsset
MoveAsset
MoveAssetToTrash
其它的查看官方API。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。