Unity编辑器高能插件:Editor ToolBox

ae0a32344d0de9dedbc7021e3ea24df8.png

点击蓝字关注我哦

84c47f6e9194adc41905adf69ddec504.png

78d39dc41057f774458145b2ada3b91a.png

 原生的Unity Editor功能有限,经常会减慢开发者的开发进度.自己开发或者使用这些插件将极大的提升开发效率,为开发者节省更多时间去开发游戏的核心玩法。高效的Unity开发者一般都会有一套属于自己的编辑器偏好,或者自己的编辑器插件.

当然编辑器插件不仅仅是去解决一些重复性的工作,比如自动绑定骨骼,生成json文件等,关于工具类插件之前我也发过关于unity的编辑器扩展:游戏开发中的编辑器扩展  但是不是优化编辑器开发流程的,你该怎么使用unity,还是怎么用.而这篇是介绍一个非常适合程序员和美工一起使用的插件.

0fcf81f8c57c2b711dd111772bc7a4bb.gif

Editor ToolBox

从哪里下载?

GitHub地址:https://github.com/arimger/Unity-Editor-Toolbox

如何使用?

下载好了之后直接打开即可,里面有示例.版本的话最好是2019+,因为我看代码中对于unity版本的判断只有2019或更高.

这里,我介绍几个我觉得比较常用的,因为它里面的功能实在是太多,要是都说一遍的话,篇幅会很大.所以我挑了大概十几个比较高能的来介绍一下.

我用的unity版本是:2020.3.18

打开之后你会看到一个比较明显的变化就是如下Hierarchy界面:

978ef1ac969b05985a86beba6d188de4.png

你也许会觉得这个界面不知所以,接下来我慢慢介绍这个Hierarchy中的这几个多出来的东西.

我想先提一个问题,假如你的场景中有很多个类型的模型,那你怎么做分类呢?之前看unity官方的例子中,它有类似这样的做法:

cc4d0561c62bf3b59ccf533e2b74af48.png

通过新建一些空物体来分割不同类型的游戏物体.当然,这么做没有任何问题.但是在EditorToobox中有个更美观的做法,就是新建一个空物体,然后命名为:#h+Name,就会在Hierarchy面板中呈现这样的一整条:

acdf3c5895130ba9ea56d1c7a98b3e98.png

相对于之前的----------Name-----------要美观的不少.

接下来是带有脚本图标的,这个功能是当鼠标悬浮在上方的时候,会罗列出当前物体上挂载的组件.

9945669c34b09dc4bb70bad1c0d87024.png

值得注意的是,它默认图标就是脚本图标,鼠标悬浮上去才会显示,所有的组件.我新建一个cube,挂上刚体:

4a56bf065513c6445fd71d3c15e59147.jpeg

那么,鼠标悬浮上去就会显示这样:

205c1ead8999d79f59f6f026c84c8a86.png

它旁边的小方块里,显示的是该物体的层级,如果层级的名字太长,就会直接显示层级的排列序号:

dbc3eb1fc5108388254f4159f0317b3c.png

那么在旁边的比较长的是Tag值

e0b638a19e8a5755ceef699ac518a33c.png

第四列的复选框用的频率最多,是设置物体是否启用,如果取消勾选那么此物体的active就是false. 

最后一列就是这个游戏物体的icon.

你也许会发现,如果hierarchy设置的太窄就不好用了,信息看不全,应该设置成下方这样

cf6b9eac422deb3146836a0a6cb7e3fd.png

我一般使用2 by 3 的布局习惯了,所以我改造了一下,就保留了设置Active和显示图标的功能.

ebd6f93b3c3691fb02051a985c06644e.png

如果你也想改的话,控制这段代码在 HierarchyPropertyLabel.cs 这个脚本中.

如果你都不想看到hierarchy里面被修改,也有办法直接隐藏,在Asset文件夹中EditorToolBox中有个EditorSettings文件,取消里面的Use Toolbo Hierarchy 即可:

5eea66ca285809911a5798f2323e5aee.png

如果你够聪明,应该能发现下面的Project是干啥的,没错,这个就是修改文件夹的图标的,你可以将图片和文件夹一起显示出来,就像toolbox文件夹一样:

5bbdaa9fea940c7f31a18fa957d3d9f7.png

好的,最简单的功能介绍完了,下面就是对于脚本的一些美观的优化. 将用法一一罗列出来.

我们新建一个脚本,名称随便,然后不需要特殊的引用什么头文件,直接在脚本上写:

using UnityEngine;
[ExecuteAlways]
[AddComponentMenu("Editor Toolbox/演示脚本名:例如 角色 信息 全局唯一 ")]
public class Vincent : MonoBehaviour
{

}

如果是先写toolbox代码,只能通过拖拽的方式挂载,你在AddComponent中增加,是找不到名为Vincent的脚本的.那么这么写的效果是什么呢?

81ccf7255dfee90e18fd1797fe3a7b43.png

 我们看看string类型:

//限制此类型只能获取 Toogle名 
    [TagSelector]
    public string TagName;
    //密码类型
    [Password]
    public string Password;

在检视面板中如下:

3ea89384320eb0c91c2815366f7ec5f8.png

我们没有写任何其他的代码,仅仅是加了"特性"标签即可 [] 为特性标签.

这就把工作变得非常简单了76f0706260cb0974feea527ba0ddc79c.png

下面是数值的调整:

//滑动条,默认最小值是0,最大值是100   颜色只支持16进制描述
    [ProgressBar("滑动条", minValue: 0.0f, maxValue: 99.0f, HexColor = "#314D79")]
    public float progressBar = 80;

    //二维向量的可视化调整
    [MinMaxSlider (0,100)]
    public Vector2 V2Value;

效果如下:

8ba2dd5e088ba7fd850cd96c7633fb2b.png

下面就比较炫酷了,因为这个是模型的预览,可以将场景中的,或者是预制体,在检视面板中直接预览.要是之前的话,我们得先点击某个模型,然后在预览的窗口才可以看到.

//模型可视化 默认大小是64*64 且useLabel = true 
    [AssetPreview(128,128,true )]
    public GameObject Go1;
    [AssetPreview(useLabel: true )]
    public GameObject Go2; 

    [InLineEditor(true,false)]
    public GameObject Go3;

 以下就是效果:

a172067305a92581d3d3e81ec931c360.png

 还有对于某些变量后面加上单位:

//增加后缀 
    [Suffix("kg")]
    public float KG;

a1613404e9e9986f45e575f90e046be5.png

下面是枚举的可视化,一般的,我们枚举直接暴露出来是不能够多选的.而这里是可以的

//枚举
    [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,
    }

在检视面板中可以自由的选择枚举的值:

9417a1d23241e1cdc7c4dbb982f14e91.png

注意,这里黑色的才算是选中的.

判断文件夹是否存在,以及场景是否在build settings里

[Label("Directory", skinStyle: SkinStyle.Box)]

    [Directory]
    public string directory;

    [Label("Scene Name", skinStyle: SkinStyle.Box)]

    [SceneName]
    public string sceneName;

如果不存在或者为空,就会报警告

4858b65806101103bdac967e20eb8d3d.png

里面的值一定是unity可以查找到的.

//空白的大小
[SpaceArea(20, 20)]
//标题
[Title ("标题")]
//画一条横线    
[Line(HexColor = "#9800FF")]

cfde2d4ee837f95ad6f71d3c3ca73981.png

最后一个需要介绍的是图片的显示:

[ImageArea("https://img.itch.zone/aW1nLzE5Mjc3NzUucG5n/original/Viawjm.png", 180.0f)]

那么,最常用的方法,我就整理到这里.希望大家去支持这个开源插件.毕竟也不是每个人都有钱买odin插件0ac809a64482e7b3c63efece99c0b854.png

b9ed63dfb73bd95e72d6b51cb5edb899.png

学以致用 一步起飞


…END…

f70d34332b87fc86a0b45686133387c5.png

-

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity 3D运行时编辑器件Runtime Editor 3.5.0是一款非常优秀的工具,它可以让开发者在游戏运行时对游戏进行修改和编辑,使游戏开发更加便捷和高效。该件支持在Unity编辑器中实时编辑、预览和调试游戏,而且还有非常友好的界面,易于上手使用。此外,它也支持一系列常用操作,如:拖拽物体、创建物体、编辑材质、修改脚本、编辑动画等等。总之,使用这款件可以充分发挥开发者的想象力和创造力,大大提升游戏开发的效率和质量。同时,它也是一款开放源代码的件,在社区得到了广泛的应用和支持。唯一需要注意的是,在使用该件时需要注意版本的适配性,不同版本的Unity可能会有一定的兼容性问题。总体来说,对于有一定开发经验的游戏开发者来说,Runtime Editor 3.5.0是一款非常实用的工具,可以让他们更加专注于游戏的创意和实现,而不是一些繁琐的操作。 ### 回答2: Unity 3D 运行时编辑器件 Runtime Editor 3.5.0 是一个强大的工具,它为 Unity 3D 用户提供了更加灵活、高效的编辑体验。该件可以让用户在运行游戏的过程中随时对场景进行编辑,添加、删除和调整物体、组件、材质等元素,以及实时预览游戏效果。 Runtime Editor 3.5.0 提供了许多实用的功能和工具,使得用户能够更快速、方便地完成场景的制作。其中一些重要的功能包括: 1. 选择工具:用户可以通过选择工具来选择物体、组件、材质等元素,并可以对其进行编辑和调整。 2. 创建工具:用户可以通过创建工具来创建新的物体、组件、材质等元素,并可以对其进行定制化的设置和编辑。 3. 面板工具:用户可以在编辑器面板中访问和编辑该件提供的所有功能和工具,并可以根据需要自定义和布置面板。 4. 预设工具:用户可以通过预设工具来快速添加和调整场景中的预设,以及对其进行设置和编辑。 另外,该件还包括了许多其他实用的功能和工具,如实时查看场景数据、调整游戏场景视角、导出场景数据等,大大提高了 Unity 3D 用户的工作效率和创作体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值