unity编译器 Selection,AssetDatabase,EditorUtility (AssetDatabase基础篇)

关于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();
    }


}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只学习的小鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值