Unity总结整理编辑器常用接口

整理一下在写Unity编辑器时经常需要用到的接口。

目录

一、Selection 获得Project面板下选中的路径信息

二、Directory 获得路径下的文件或文件夹信息

三、AssetDatabase 获得资源相关信息

四、File 文件操作

五、EditorUtility、GUILayout编辑器布局 默认垂直布局

六、还比较常用的类

七、一些应用

一、Selection 获得Project面板下选中的路径信息

1.Selection.GetFiltered 过滤选中的文件

    常用方法Selection.GetFiltered<UnityEngine.Object>(SelectionMode.Assets),拿到选中的文件路径,可以多选操作,得到Assets目录下的路径名。

2.Selection.selectionChanged 变换选中时的事件通知,在编辑器下监听,可以在变化时才执行Repaint更新编辑器,减少OnGUI的压力。

3.SelectionMode 选中过滤模式,这里只列举比较常用的

    Unfiltered --> 不过滤,返回所有文件

    TopLevel  --> 只返回顶层文件,顶层下的将会被过滤

    Assets      --> 返回选中的资源

    ExcludePrefab --> 排除预制件

4.注意

    在Project右侧操作面板时才会有效,拿到路径信息后可以进行下一步的操作

5.Selection.objects 选中的物体

二、Directory 获得路径下的文件或文件夹信息

1.Directory.CreateDirectory 创建文件夹目录

2.Directory.GetDirectories 获得路径下文件夹目录

3.Directory.GetFiles 获得路径下的文件

4.searchPattern 匹配文件规则

    “*”所有文件

    “*.prefab”预制体文件等

5.SearchOption 搜索规则

    TopDirectoryOnly --> 只操作当前目录下的

    AllDirectories --> 操作当前且所有子目录下的

三、AssetDatabase 获得资源相关信息

1.AssetDatabase.GetAssetPath 获取资源路径,传入UnityEngine.Object

2.AssetDatabase.LoadAssetAtPath 通过路径获取资源

3.AssetDatabase.GetDependencies 获取依赖

4.AssetDatabase.SaveAssets 保存修改

5.AssetDatabase.Refresh 刷新

6.AssetDatabase.ImportAsset 导入资源

四、File 文件操作

1.File.Copy(src, dst) 复制

2.File.Exists(path) 文件是否存在

3.File.ReadAllBytes(file) 读取文件字节

4.File.WriteAllBytes(file) 写入文件字节

五、EditorUtility、GUILayout编辑器布局 默认垂直布局

1.BeginHorizontal  --- --- --- --- --- EndHorizontal 水平布局

2.BeginVertical 垂直布局

   。。

   EndVertical

3.BeginScrollView -- EndScrollView 滑动

4.LabelField 文字 ObjectField物体 Slider滑动条 

5.Button 按钮 TextFile文字

6.EditorUtility.OpenFilePanel("open", "e:/", ".txt") 打开文件浏览器,选择文件后返回路径

六、还比较常用的类

1.PrefabUtility 预设操作

     PrefabUtility.InstantiatePrefab将预制体实例化

     PrefabUtility.SavePrefabAsset 将关联的预制体保存

2.EditorUtility 编辑器工具类 提示框 进度条框等

EditorUtility.DisplayDialog("这里是提示框", "DisplayDialog", "确定")
EditorUtility.DisplayDialog("这里是提示框", "DisplayDialog", "确定")
EditorUtility.DisplayProgressBar("这里是进度提示", "刷新提示信息", 0.5f)

七、一些应用

选中Text预制体复制,并输出依赖。

    public static void TestAll()
    {
        var obj = Selection.objects;
        if (obj == null) return;
        string path = AssetDatabase.GetAssetPath(obj[0]);
        Debug.Log("选中资源的路径" + path);
        GameObject obj2 = AssetDatabase.LoadAssetAtPath<GameObject>(path);
        Debug.Log("资源名字" + obj2.name);
        File.Copy(path, path.Replace(".prefab", "copy.prefab"));
        var paths = AssetDatabase.GetDependencies(path);
        Debug.Log("输出依赖:");
        foreach(var p in paths)
        {
            Debug.Log(p);
        }
    }

 

 

猜你喜欢

转载自blog.csdn.net/u013012420/article/details/105709915