Unity3D 中心化数据管理小工具 - UniInspect
前言
平时在Unity上开发,没办法将所有的数据配表或者项目体量不大的时候,我们会将字段暴露在GameObject上,在Inspector上直接方便的修改。
有些时候我们也会用ScriptableObject作为我们定制化的数据容器进行数据的存储,能快速的在Editor上面预览和修改。
可是如果一旦这些Object多起来后,不像配表一样,可以同一时间针对目标字段进行批量修改;在Editor上,不同的字段往往是分散到一个个独立的GO/SO中,甚至还不是在hierarchy的最上层,在Editor上查看/比较/修改则变成非常困难。
介绍
一直没有非常重视这个问题,也没有中心化数据管理的这个概念,直到有一天我在商店看到了这个插件
Design Variables - Asset Storeassetstore.unity.com 图标 image是一个几乎Editor Only的插件,只需要在需要的字段上面标注一个属性,就能在自定义窗体中找到所有有相关字段的资源,并且对其修改。
但是这个插件有两个问题:
-
Design Variables is an asset MADE WITH ODIN. This means this asset requires you to have the ODIN INSPECTOR asset. Desgin Variables是一个用Odin Inspector制作的插件。这就意味着你必须有用Odin Inspector才能使用这个插件。脱离奥丁就用不了的话限制就比较大。
-
这是一个收费插件,目前的售价在4.99刀。。。我也没买。
于是,我花了一小点时间,做了个功能差不多插件,并且将其开源了。
这个工具拥有以下几个特性:
-
数据中心化
-
筛选、查找结果
-
支持多个组件显示
-
编辑器工具,对工程代码少侵入
-
可折叠查找结果
-
结果分页显示
需求
在以下Unity版本中进行测试:
-
✅ 2017.x.x
-
✅ 2018.1.x
-
✅ 2018.2.x
-
❌ 2018.3.x (not supported yet)
-
❓ Older than 2017.4.x
Unity 2018.3.x由于使用了新的PrefabSystem,暂时没有支持到这个版本的Unity。
安装
方法一
- github仓库中clone/直接下载zip获得代码,直接添加到工程中即可。
方法二
- 将项目作为submodule添加你的工程中即可。
使用
- 将可序列化的字段以[UniInspect]来标记
- 在UniInpect/Browser中查看结果
其他
- 支持显示装饰性Attribute(自带的Range/Header等,也支持自己编写的)
- 支持显示自定义PropertyDrawer
结语
-
这是一个快速制作出来的小工具,可能会有莫名其妙的Bugs。
-
有啥问题github上、或者评论私信都可以。
-
最后希望大家用的开心