索引
Utility编辑器实用工具简介
Utility编辑器实用工具包含多个提升开发效率、调试效率的编辑器工具。
使用Utility
批处理工具 Component Batch
ComponentBatch批处理工具用于批量处理Scene场景中任意组件。
打开 Component Batch
1.Root:批处理的根物体。
2.Component Filter:批处理目标组件的名称筛选器。
3.Component:批处理目标组件。
4.Include Inactive:是否涵盖未激活的组件。
5.Collect:开始收集组件。
批处理 Component
例如批处理Canvas物体下的所有Text组件,我们将Canvas设置为根物体。
在筛选栏中输入text,再点击Component下拉菜单,在筛选出来的组件中找到我们的目标组件UnityEngine.UI.Text。
注意:筛选器的作用只是为了排除多余的不符合要求的组件。
到此,我们直接点击Collect按钮就可以筛选出Canvas物体下的所有Text组件了,在这里,我们就可以批量处理Canvas物体下的四个Text组件的属性。
批处理工具 Project Batch
ProjectBatch批处理工具用于批量处理Project目录中的任意对象。
打开 Project Batch
1.Folder:批处理的根文件夹。
2.Object Filter:批处理目标对象的名称筛选器。
3.Object:批处理目标对象。
4.Collect:开始收集对象。
批处理 Object
例如批处理Image文件夹下的所有Texture对象,我们将Image设置为根文件夹。
在筛选栏中输入texture,再点击Object下拉菜单,在筛选出来的对象中找到我们的目标对象UnityEngine.Texture。
注意:筛选器的作用只是为了排除多余的不符合要求的对象。
到此,我们直接点击Collect按钮就可以筛选出Image文件夹下的所有Texture对象了,在这里,我们就可以批量处理所有Texture对象的属性。
程序集查看器 Assembly Viewer
AssemblyViewer用于查看当前程序域的所有程序集,功能包括浏览程序集中所有类型,浏览类型的所有字段、属性、方法等,是开发编辑器工具的得力助手。
打开程序集查看器
使用程序集查看器
例,使用程序集查看器实现编辑器的实用功能:快捷键清理控制台。
首先我们要想到,一键清理控制台的功能是Unity编辑器提供的,所以我们只需要反射到那个清理控制台的方法,直接调用就可以了。
所以最重要的工作就是找到那个Unity编辑器中用来清理控制台的方法。
毫无疑问,所有编辑器功能无一例外都会从UnityEditor程序集开始查找,我们在Assembly栏找到UnityEditor程序集并选中它。
此时的Type栏便显示UnityEditor程序集中的所有类型,我们在搜索框输入log,经过一系列筛选,我们最终锁定了LogEntries为目标,在Type栏选中它。
很遗憾的得知他是一个封闭的内部类,通过继承来实现是不可能的了,不过,再牛的内部类,也难不倒反射!我们在Member栏中找到Clear方法,不出所料,这就是一键清理控制台的方法了。
万事俱备,只欠代码了!唰唰唰,我们三行搞定今天的任务:
private static void ClearConsole()
{
Type logEntries = GetTypeInEditorAssemblies("UnityEditor.LogEntries");
MethodInfo clearMethod = logEntries.GetMethod("Clear", BindingFlags.Static | BindingFlags.Public);
clearMethod.Invoke(null, null);
}
接下来,把这个方法加入到编辑器菜单,并定制快捷键就完工了,当然,框架中已经完成了这个功能。
结语:在一般情况下,即使有反编译工具,能够获取到源代码,但也无法改写,所以如果只是用于反射,程序集查看器将是一个不错的工具。
扩展检视器 Extended Inspector
Extended Inspector扩展检视器为Unity原生Inspector窗口的扩展,可以将任意组件打开至Extended Inspector窗口,并长期驻留,毕竟Inspector窗口只能显示当前选中组件的属性。
打开 Extended Inspector
在任意组件上点击鼠标右键,选择菜单Browse In Extended Inspector,便可将其添加至Extended Inspector界面,如下:
可以添加多个组件至Extended Inspector界面,且这些组件会持久展示在面板,即便该组件对应的目标没有被选中,除非该组件被销毁:
点击组件面板右上角的垃圾桶
图标可以将组件从Extended Inspector界面中移除,或者关闭Extended Inspector窗口,下次打开时之前停留的组件将全部移除:
框架实用特性
请参阅框架实用特性。