Unity编辑器高能插件:Editor ToolBox
点击蓝字关注我哦
原生的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编程大全
Unity编辑器高能插件:Editor ToolBox相关推荐
- Unity编辑器扩展——在Editor下动态添加监听事件
对于Unity下例如按钮这种我们可以为它的监听事件手动进行赋值 如果需要通过编辑器扩展来动态为这些监听事件赋值应该如何去实现呢? 首先需要确认的是这些监听事件必须要符合一定的规则才能添加上: 1.必须 ...
- unity 编辑器存档_unity3d editor sprite 分割后的结果保存
之前有人留言说想我介绍一下sprite packer的用法.那么我也顺便的介绍一下unity3d editor sprite 分割后的结果保存吧. 我们用来做sprite 的图片,通常会留有很多空白的 ...
- Unity编辑器定制和开发插件
http://blog.csdn.net/a351945755/article/details/35286761 在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GU ...
- Unity 编辑器开发实战【Custom Editor】- FSM Editor
本文介绍如何为FSM有限状态机模块实现一个自定义编辑器面板,FSM的详细代码在上一篇文章中有介绍,链接地址: 在Unity中构建FSM有限状态机 下面是最终效果: 首先,自定义一个编辑器面板,需要用到 ...
- Unity 编辑器开发实战【Custom Editor】- AudioDatabase Editor 音频库编辑器
本文实现一个音频库的自定义编辑器,效果如图: 开始实现之前,首先简单介绍该音频库模块,音频库类Audio Database继承自Scriptable Object类,是一个可配置的资源文件: 包含的内 ...
- Unity 编辑器插件-快速删除组件
尊重原著:(1条消息) Unity 编辑器插件-快速删除组件_unity 删除组件_菜菜ANY的博客-CSDN博客 实现删除所选物体及子物体中指定组件.自动apply 同时考虑一个物体上挂在多个相同组 ...
- Unity编辑器Unity Editor基础(一)
Unity编辑器Unity Editor基础(一) 关于 Unity 内置属性可以从到官方文档中查询,本篇文章只介绍一些常用的内置属性,如下图所示: 接下来进行项目设置,创 ...
- Unity3D Editor 编辑器扩展3 Editor脚本
Unity3D Editor 编辑器扩展3 Editor脚本 环境:Unity2017.2 语言:C# 总起: 在编辑Unity项目的时候,总不可能避免的接触到Unity自身自带的Inspector参 ...
- unity2d游戏开发系列教程:二、新建工程并熟悉Unity编辑器常用功能
目录 unity2d游戏开发系列教程:一.环境安装 第一步.打开项目 耐心等待一小会 工程界面 第二步.创建第一个场景(第一关)进行试玩 点击图中标号1的运行按钮,即可简单试玩感受,操作如下 移动A, ...
最新文章
- html块级元素对齐方式,块级元素的三种垂直水平居中的方法
- linux下pptpd的安装配置(×××)
- tp框架实现ajax
- 无源码情况下动态调试混淆的java程序
- 数学与算法《文档相似性 - 余弦定理》
- UBUNTU安装 SSH 服务
- jvm 内存溢出 Java heap space 调优解决过程
- 找电影最强攻略,最全资源站
- bugku之江湖魔头
- 手机网络延迟测试软件,手机网速延迟测试在线(手机网络延迟测试工具)
- 脸上长痘部位对应的身体问题
- Java个人职业规划目标改进_java个人职业发展方向规划范文
- solr自带智能拼音收藏
- Bresenham画圆 正负画圆法 中点画圆法
- pandas 用均值填充缺失值NaN —— fillna 方法解析
- mybatis批量新增和批量更新的效率对比
- 秉承极简美学设计:Polestar 2 登陆中国后会威胁到谁?
- 计算机在铁路中的应用论文800字,交通运输和交通论文,关于计算机信息网络系统在铁路交通运输管理中的应用相关参考文献资料-免费论文范文...
- Linux之curl 风骚用法
- 在ubuntu安装pycharm及之后要做的事
热门文章
- origin和python有什么不同_LabPlot替代Origin用于科研绘图
- 音频信号处理(一)均衡器
- 线性数据结构之队列(Queue)
- 【微信小程序开发(4)---demo.wxss的view{ }宽、高设置以及公式换算】
- EpsonL365无线连接问题
- win7开机密码_如何开启win7系统自动锁屏功能 win7自动锁屏功能开启方法【详解】...
- matlab中绘制正四边形,matlab画任意三维四边形
- 【python】欧姆龙智能物料排布之二维装箱算法实现
- 【测试开发】几种常见的自动化测试框架
- 无服务器Serverless详解