起因
从毕业起一直在做Unity客户端的工作,每个基础模块的开发都会有一些重复性的工作,最近也在网上看到有编写工具来完成这些重复性的工作。
- 根据美术给的素材拼UI预设Prefab
- 获取Prefab的引用
- 定义事件
- 或许还有框架基类的一些方法和变量要实现
上述的四个流程 都可以通过插件实现,第一个可以去网上找一些插件,比如PSD2UGUI,一个开源项目。
这里着重说一下下面的三个工作怎么实现自动化生成脚本。
思路
当我们拿到Prefab 后就要编写脚本,来获取到某些组件的引用,然后我们可以用代码来控制这些组件,包括给它定义事件,或者更改内容等。
这里要考虑一下,通常我们之前的做法是通过绑定,或者是根据组件的名字通过Find来得到引用,但是这里我们需要通过代码来自动话实现获取到引用,那么就需要给我们Prefab的组件命名来定义一个规则,这样我们在脚本 中遍历组件的时候才知道那些是需要引用的,那些是不需要的,包括它的类型,比如我是这样命名的。
- 按钮的名字以 Btn_ 开头
- 图片的名字以 Image_ 开头
- 文字的名字以 Text_ 开头
- …
当然上面这些是需要在脚本里动态设置一些属性的才会用这种命名格式,有写图片也需要有点击方法,那么可以 这样命名 ImageClick 以这个开头,然后在脚本里检测,然后在给它处理点击事件,这里我没有做,只是做了一个小工具,内容不全,但思路已经有了(懒)
效果

脚本
PrefabToScriptTemplate 类 是一个模板类,里面有一些像 #类名# 这种的字符串,会在后期替换掉
1 | public class PrefabToScriptTemplate |
ClientPrefabToScript 这个是生成代码的重点,包含了查找选中物体的子物体的种类类型,注册事件,等
1 | using System.Collections; |
使用
使用的时候要记得在Hierarchy 视窗中选中 Prefab 的最外层节点,然后点击 菜单栏的 Client/自动生成客户端UI代码 然后在 Console中显示“脚本创建成功” 就说明脚本自动生成 成功了。
最后
这个小工具,只是拓展了一下思路,在开发中 省去了一些无聊的工作流程,后期会慢慢优化,当然工具都是跟着项目走的,思路才是应该掌握的,加油!