最近大哥让我写一个小工具,发现这个东西很是安逸,可以结合c#文件操作的那一套,用着接口很是顺手。这个其实就可以分为三大类,资源导入,资源加载不同于resource.load,资源的创建删除赋值。我们来看看资源加载这个东东吧。
AssetDatabase.LoadAssetAtPath
这个东东很像resource.load,好像在unity5.0之前这个方法就是resource.loadatpath。看名字也知道这个方法是传路径。可以理解为这个仅仅是在编辑器中使用的resource.load不用去游戏运行中的。要引入UnityEditor这个命名空间。
using UnityEngine;
using UnityEditor;
public class MyPlayer : MonoBehaviour {
[MenuItem("AssetDatabase/LoadAssetExample")]
static void ImportExample() {
Texture2D t = (Texture2D)AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Textures/texture.jpg");
}
}
这个例子很简单,就是加载一个Texture2D。
AssetDatabase.LoadAssetAtPath
这个东西配合着Selection.ojects,就可以知道你在编辑器下选中资源文件夹中的文件的目录,再使用上面的方法,就可加载所选中目标中的物品。然后对其做处理。
var selectObjects = Selection.objects;
if (selectObjects == null)
{
Debug.LogWarning("No Select Objects");
return false;
}
foreach (var item in selectObjects)
{
if (AssetDatabase.GetAssetPath(item) != null)
{
Debug.Log(AssetDatabase.GetAssetPath(item));
}
}