赞
踩
点击蓝字关注我哦
原生的Unity Editor功能有限,经常会减慢开发者的开发进度.自己开发或者使用这些插件将极大的提升开发效率,为开发者节省更多时间去开发游戏的核心玩法。高效的Unity开发者一般都会有一套属于自己的编辑器偏好,或者自己的编辑器插件.
当然编辑器插件不仅仅是去解决一些重复性的工作,比如自动绑定骨骼,生成json文件等,关于工具类插件之前我也发过关于unity的编辑器扩展:游戏开发中的编辑器扩展 但是不是优化编辑器开发流程的,你该怎么使用unity,还是怎么用.而这篇是介绍一个非常适合程序员和美工一起使用的插件.
Editor ToolBox
从哪里下载?
GitHub地址:https://github.com/arimger/Unity-Editor-Toolbox
如何使用?
下载好了之后直接打开即可,里面有示例.版本的话最好是2019+,因为我看代码中对于unity版本的判断只有2019或更高.
这里,我介绍几个我觉得比较常用的,因为它里面的功能实在是太多,要是都说一遍的话,篇幅会很大.所以我挑了大概十几个比较高能的来介绍一下.
我用的unity版本是:2020.3.18
打开之后你会看到一个比较明显的变化就是如下Hierarchy界面:
你也许会觉得这个界面不知所以,接下来我慢慢介绍这个Hierarchy中的这几个多出来的东西.
我想先提一个问题,假如你的场景中有很多个类型的模型,那你怎么做分类呢?之前看unity官方的例子中,它有类似这样的做法:
通过新建一些空物体来分割不同类型的游戏物体.当然,这么做没有任何问题.但是在EditorToobox中有个更美观的做法,就是新建一个空物体,然后命名为:#h+Name,就会在Hierarchy面板中呈现这样的一整条:
相对于之前的----------Name-----------要美观的不少.
接下来是带有脚本图标的,这个功能是当鼠标悬浮在上方的时候,会罗列出当前物体上挂载的组件.
值得注意的是,它默认图标就是脚本图标,鼠标悬浮上去才会显示,所有的组件.我新建一个cube,挂上刚体:
那么,鼠标悬浮上去就会显示这样:
它旁边的小方块里,显示的是该物体的层级,如果层级的名字太长,就会直接显示层级的排列序号:
那么在旁边的比较长的是Tag值
第四列的复选框用的频率最多,是设置物体是否启用,如果取消勾选那么此物体的active就是false.
最后一列就是这个游戏物体的icon.
你也许会发现,如果hierarchy设置的太窄就不好用了,信息看不全,应该设置成下方这样
我一般使用2 by 3 的布局习惯了,所以我改造了一下,就保留了设置Active和显示图标的功能.
如果你也想改的话,控制这段代码在 HierarchyPropertyLabel.cs 这个脚本中.
如果你都不想看到hierarchy里面被修改,也有办法直接隐藏,在Asset文件夹中EditorToolBox中有个EditorSettings文件,取消里面的Use Toolbo Hierarchy 即可:
如果你够聪明,应该能发现下面的Project是干啥的,没错,这个就是修改文件夹的图标的,你可以将图片和文件夹一起显示出来,就像toolbox文件夹一样:
好的,最简单的功能介绍完了,下面就是对于脚本的一些美观的优化. 将用法一一罗列出来.
我们新建一个脚本,名称随便,然后不需要特殊的引用什么头文件,直接在脚本上写:
- using UnityEngine;
- [ExecuteAlways]
- [AddComponentMenu("Editor Toolbox/演示脚本名:例如 角色 信息 全局唯一 ")]
- public class Vincent : MonoBehaviour
- {
-
- }
如果是先写toolbox代码,只能通过拖拽的方式挂载,你在AddComponent中增加,是找不到名为Vincent的脚本的.那么这么写的效果是什么呢?
我们看看string类型:
- //限制此类型只能获取 Toogle名
- [TagSelector]
- public string TagName;
- //密码类型
- [Password]
- public string Password;
在检视面板中如下:
我们没有写任何其他的代码,仅仅是加了"特性"标签即可 [] 为特性标签.
这就把工作变得非常简单了
下面是数值的调整:
- //滑动条,默认最小值是0,最大值是100 颜色只支持16进制描述
- [ProgressBar("滑动条", minValue: 0.0f, maxValue: 99.0f, HexColor = "#314D79")]
- public float progressBar = 80;
-
- //二维向量的可视化调整
- [MinMaxSlider (0,100)]
- public Vector2 V2Value;
效果如下:
下面就比较炫酷了,因为这个是模型的预览,可以将场景中的,或者是预制体,在检视面板中直接预览.要是之前的话,我们得先点击某个模型,然后在预览的窗口才可以看到.
- //模型可视化 默认大小是64*64 且useLabel = true
- [AssetPreview(128,128,true )]
- public GameObject Go1;
- [AssetPreview(useLabel: true )]
- public GameObject Go2;
-
- [InLineEditor(true,false)]
- public GameObject Go3;
以下就是效果:
还有对于某些变量后面加上单位:
- //增加后缀
- [Suffix("kg")]
- public float KG;
下面是枚举的可视化,一般的,我们枚举直接暴露出来是不能够多选的.而这里是可以的
- //枚举
- [EnumToggles]
- public FlagExample enumFlag = FlagExample.Flag1 | FlagExample.Flag2 ;
-
- [System.Flags]
- public enum FlagExample
- {
- Nothing = 0,
- Flag1 = 1,
- Flag2 = 2,
- Flag3 = 4,
- Flag4 = 8,
- Flag5 = 16,
- Flag6 = 32,
- Flag7 = 64,
- Flag8 = 128,
- Flag9 = 256,
- Everything = ~0,
- }
在检视面板中可以自由的选择枚举的值:
注意,这里黑色的才算是选中的.
判断文件夹是否存在,以及场景是否在build settings里
- [Label("Directory", skinStyle: SkinStyle.Box)]
-
- [Directory]
- public string directory;
-
- [Label("Scene Name", skinStyle: SkinStyle.Box)]
-
- [SceneName]
- public string sceneName;
如果不存在或者为空,就会报警告
里面的值一定是unity可以查找到的.
- //空白的大小
- [SpaceArea(20, 20)]
- //标题
- [Title ("标题")]
- //画一条横线
- [Line(HexColor = "#9800FF")]
最后一个需要介绍的是图片的显示:
[ImageArea("https://img.itch.zone/aW1nLzE5Mjc3NzUucG5n/original/Viawjm.png", 180.0f)]
那么,最常用的方法,我就整理到这里.希望大家去支持这个开源插件.毕竟也不是每个人都有钱买odin插件
学以致用 一步起飞
…END…
-
技术群:添加小编微信并备注进群
小编微信:mm1552923
公众号:dotNet编程大全
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。