整理一下在写Unity编辑器时经常需要用到的接口。
目录
一、Selection 获得Project面板下选中的路径信息
五、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.基本上都可以直接定义到布局类中查看使用方法
六、还比较常用的类
1.PrefabUtility 预设操作
PrefabUtility.InstantiatePrefab将预制体实例化
PrefabUtility.SavePrefabAsset 将关联的预制体保存
2.EditorUtility 编辑器工具类 提示框 进度条框等
七、一些应用
选中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);
-
}
-
}
转载:https://blog.csdn.net/u013012420/article/details/105709915