Unity编辑器扩展简介

首先要知道编辑器扩展是怎么个事后我们再来学习它,编辑器扩展其实就是我们自己为Unity编写一些工具方便我们项目的使用,就是自己写方法来对unity编辑器进行扩展,一般用来写工具类,插件等,这里先只介绍其核心的用法,例如我想让Unity将指定的文件打包生成AB包,Unity编辑器是不支持该功能的,因此就需要对编辑器进行扩展增加功能。

其实编辑器扩展对于Unity入门级开发来说是用不上的,因为这基本上都是项目的主程负责的活,给项目写一些插件方便大家更好的使用。那为什么我们还是要学呢,其实也只做了解即可,知道有这个东西就行。这篇文章更多的是将注意事项和知识点,不适合入门教程

使用注意事项:

  1. 需要添加[MenuItem]的特性(需要引入UnityEditor命名空间)
  2. 需要方法是静态方法
  3. 最好将编辑器扩展脚本方法Editor文件夹中,因为Editor文件夹不会打包在游戏包中,也就是说它只会作用在编辑模式下
  4. 利用Undo类可以对操作进行撤销(编辑模式下)例如Undo. Destroy0bjectImmediate()就可以用ctrl+z撤销删除操作

1.例如下面,就用该特性添加了一个Tool的工具栏其还有子方法Test。(注意这里的类Tools是直接放在Editor文件夹中,不需要挂载到任何对象上) 

2.设置优先级可以调整方法的先后顺序,如果两个方法相差11的优先级,unity就会自动分栏

(注意的右键显示只是在游戏对象的Hierarchy中,在Project点击右键需要特性中的路径是Assets)

 

3.CONTEXT是为组件进行方法扩展,MenuCommand是当前正在操作的组件

 

这样就可以直接在编辑器状态下直接点击组件右键对组件的值进行更改

注意可以使用ContextMenu特性直接在组件(不能是unity中自带组件,因为不能更改unity自带的组件内容)里面进行方法扩展,这样就可以直接在组件中进行扩展,方便字段的访问,效果和上方一样

 用ContextMenuItem可以为字段添加特性,可以在编辑器模式下鼠标右击字段就可以显示出来,第一个参数为点击的按钮名,第二个参数为点击是要执行的方法(需要写出来)

4.Selection类是当前选中的物体 

5.为编辑器方法添加快捷键,%代表ctrl,#代表shitf,&代表alt 

6.为编辑器方法添加是否可用,需要设置第二个参数设置为true 

7.创建Wizard窗口(这个窗口更加倾向于修改物体属性,不会长时间存在) 

首先需要创建一个继承自ScriptableWizard的窗口类,该类的作用就是显示在窗口中内容 

 

  再用编辑器扩展函数创建指定窗口类的窗口

 实现的效果就像是这样,其中该窗口有个Create按钮,点击时会调用OnWizardCreate方法

 其它用法参考官方文档

8.提示信息,ShowNotification()方法,提示信息是只能在窗口中使用,因此它是属于窗口 父类的一个方法,窗口子类可以直接使用该方法

9.使用EditorPrefs类可以在编辑器模式下保存数据,使用方法和PlayerPrefs一样

10.使用EditorUtility.DisplayProgressBar()可以展示进度条

11.自定义窗口

        (1)自定义创建都是由EditorWindow的子类对象的Show方法显示,因此要先创建该对象

        (2)用编辑器扩展执行 EditorWindow.GetWindow方法来获得该对象

        (3) 最后在OnGUI中使用GUILayout等进行绘制窗口中的内容

完成的效果如下 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值