Unity游戏开发经验分享Unity基础入门分享

AssetDatabase的灵活运用

2019-08-22  本文已影响8人  能不写代码么

前言

编辑器下加载模型

    [MenuItem("Tools/加载模型")]
    public static void LoadModel()
    {
        GameObject go = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Prefab/Wolf.prefab");
        GameObject.Instantiate(go);
    }

编辑器下删除选中的所有物体(Selection类)

    [MenuItem("Tools/删除模型(无法撤回)")]
    public static void DestroyImmediateModel()
    {
        foreach (var item in Selection.objects)
        {
            GameObject.DestroyImmediate(item);
        }
    }
[MenuItem("Tools/删除模型(可以撤回)")]
    public static void UndoDestroyImmediateModel()
    {
        foreach (var item in Selection.objects)
        {
            Undo.DestroyObjectImmediate(item);
        }
    }

获取当前选中文件的路径

    [MenuItem("Tools/文件所在的路径")]
    public static void CurrentObjPath()
    {
        var seletionObjs = Selection.objects;
        if(seletionObjs == null)
        {
            Debug.Log("当前没有选中物体");
            return;
        }

        foreach (var item in seletionObjs)
        {
            if (AssetDatabase.GetAssetPath(item) != null)
            {
                Debug.Log(AssetDatabase.GetAssetPath(item));
            }
        }
    }

结语

对AssetDatabaseTest类一些总结,会日益完善哦

上一篇 下一篇

猜你喜欢

热点阅读