关于AssetDatabase类懂得不多我把我知道的几个Apl写了出来
(等以后我了解的再深一点我会把其他APL进行补充)
其中也有我对这些APl的理解
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class AssetDatabases
{
[MenuItem("AssetDatabase/Contains")]
static void Contains()
{
// AssetDatabase.Contains 判断一个物体是否是资源(在场景的中的物体不算资源)
var aa = AssetDatabase.Contains(Selection.activeObject);
Debug.Log(aa);
}
[MenuItem("AssetDatabase/CopyAsset")]
static void CopyAsset()
{
//AssetDatabase.CopyAsset 将路径里所有的东西都复制到你的新路径(注意不会删除原来的目录)
//注意千万不要复制到Streaminghsseta路径下假设是一个材质球复制到Streaminghssets路经下他会变成文本文件二进制一样
//如果传的是物体切记一定要写正确的后缀名
var aa = AssetDatabase.CopyAsset("Assets/abc/New Material.mat", "Assets/Material.mat");
Debug.Log(aa);
}
[MenuItem("AssetDatabase/CreateAsset")]
static void CreateAsset()
{
//AssetDatabase.CreateAsset 你在代码里创建的物体放入对应的目录下(注意有后缀名)
//注意预制件是不可以创建的如果想创建有其他API
Material material = new Material(Shader.Find("Standard"));
AssetDatabase.CreateAsset(material, "Assets/Resources/material.mat");
}
[MenuItem("AssetDatabase/CreateFolder")]
static void CreateFolder()
{
//参数1:是你想放入的父文件参数2:是你的子文件作用创建目录
AssetDatabase.CreateFolder("Assets", "My Folder");
}
[MenuItem("AssetDatabase/GUIDToAssetPath")]
static void GUIDToAssetPath()
{
//可以帮我们查找所有的后缀名为prefab类型的物体
//返回回来的guid代表物体的身份证
//可以通过AssetDatabase.GUIDToAssetPath 来获取他完整的路径
var guid = AssetDatabase.FindAssets("t:prefab");
foreach (var item in guid)
{
Debug.Log(item);
string path = AssetDatabase.GUIDToAssetPath(item);
Debug.Log(path);
}
}
[MenuItem("AssetDatabase/FindAssets")]
static void FindAssets()
{
//可以帮我们查找所有的后缀名为prefab类型的物体
//返回回来的guid代表物体的身份证
var guid = AssetDatabase.FindAssets("t:prefab");
foreach (var item in guid)
{
Debug.Log(item);
}
}
[MenuItem("AssetDatabase/LoadAssetAtPath")]
static void LoadAssetAtPath()
{
//可以帮我们查找所有的后缀名为prefab类型的物体
//返回回来的guid代表物体的身份证
//可以通过AssetDatabase.GUIDToAssetPath 来获取他完整的路径
//AssetDatabase.LoadAssetAtPath 加载路径的物体
var guid = AssetDatabase.FindAssets("t:prefab");
foreach (var item in guid)
{
Debug.Log(item);
string path = AssetDatabase.GUIDToAssetPath(item);
Debug.Log(path);
AssetDatabase.LoadAssetAtPath<GameObject>(path);
}
}
[MenuItem("AssetDatabase/DeleteAsset")]
static void DeleteAsset()
{
//删除工程下任何东西
var bools = AssetDatabase.DeleteAsset("Assets/Resources/abc");
Debug.Log(bools);
}
[MenuItem("AssetDatabase/IsValidFolder")]
static void IsValidFolder()
{
//给他一个路径它判断它是否是场景中的目录
var bools = AssetDatabase.IsValidFolder("Assets/Resources/abc");
Debug.Log(bools);
}
[MenuItem("AssetDatabase/LoadAllAssetsAtPath")]
static void LoadAllAssetsAtPath()
{
//可以将我们九宫格切割完的图片都打印出来返回类型0bject数组
var objets = AssetDatabase.LoadAllAssetsAtPath("Assets/aa.jpg");
foreach (var item in objets)
{
Debug.Log(objets);
}
}
[MenuItem("AssetDatabase/MoveAsset")]
static void MoveAsset()
{
// 参数数1 oldpath是之前的路径 参数2 newpath 是改完之后的路径
var objets = AssetDatabase.MoveAsset("Assets/Folder", "Assets/Resources/Folder");
}
[MenuItem("AssetDatabase/Refresh")]
static void Refresh()
{
//刷新 project的界面
AssetDatabase.Refresh();
}
}
|