Unity3D 中心化数据管理小工具 - UniInspect

前言

平时在Unity上开发,没办法将所有的数据配表或者项目体量不大的时候,我们会将字段暴露在GameObject上,在Inspector上直接方便的修改。

有些时候我们也会用ScriptableObject作为我们定制化的数据容器进行数据的存储,能快速的在Editor上面预览和修改。

可是如果一旦这些Object多起来后,不像配表一样,可以同一时间针对目标字段进行批量修改;在Editor上,不同的字段往往是分散到一个个独立的GO/SO中,甚至还不是在hierarchy的最上层,在Editor上查看/比较/修改则变成非常困难。

介绍

一直没有非常重视这个问题,也没有中心化数据管理的这个概念,直到有一天我在商店看到了这个插件

Design Variables - Asset Store​assetstore.unity.com
图标
image

是一个几乎Editor Only的插件,只需要在需要的字段上面标注一个属性,就能在自定义窗体中找到所有有相关字段的资源,并且对其修改。

但是这个插件有两个问题:

  1. 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才能使用这个插件。脱离奥丁就用不了的话限制就比较大。

  2. 这是一个收费插件,目前的售价在4.99刀。。。我也没买。

于是,我花了一小点时间,做了个功能差不多插件,并且将其开源了。

这个工具拥有以下几个特性:

  1. 数据中心化

  2. 筛选、查找结果

  3. 支持多个组件显示

  4. 编辑器工具,对工程代码少侵入

  5. 可折叠查找结果

  6. 结果分页显示

需求

在以下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。

安装

方法一

  1. github仓库中clone/直接下载zip获得代码,直接添加到工程中即可。

方法二

  1. 将项目作为submodule添加你的工程中即可。

使用

  1. 将可序列化的字段以[UniInspect]来标记
  1. 在UniInpect/Browser中查看结果

其他

  • 支持显示装饰性Attribute(自带的Range/Header等,也支持自己编写的)
  • 支持显示自定义PropertyDrawer

结语

  • 这是一个快速制作出来的小工具,可能会有莫名其妙的Bugs。

  • 有啥问题github上、或者评论私信都可以。

  • 最后希望大家用的开心

你可能感兴趣的:(Unity3D 中心化数据管理小工具 - UniInspect)