前言:
个人观点:UI界面开发在整个游戏开发过程中,是最最枯燥无聊又没有营养含量的,可苦于公司几个项目都只有我一个程序开发,客户端服务端网站软件都要着手开发,有时难免手忙脚乱,尤其是当你碰到一个UI界面有上百个元素需要获取路径查找时,或者是对存在几百个元素的界面进行的调整时,比如原本的20个按钮被移动到其他的父节点下,那么获取这20个按钮的节点路径就要发生变化,这种完全很浪费时间的需求肯定会让每一个程序都很头痛...
如何偷懒:
那么作为程序肯定会想到,如果我把这些界面都先搭建好,然后一键生成代码怎么样呢?自动生成代码文件,然后我就有了现在的UI快速开发雏形
工作场景:
设Main界面上有20个按钮,通过递归出每个节点的完整路径,并自动根据它身上的组件去判断它是什么组件,然后自动生成一个MainPager.cs文件,然后你发现你一行代码也不用写,这个界面上的所有元素你都已经能获取到进行开发了,这20个按钮响应事件也都全部绑定完成了
存在问题:
这是几年前写的雏形版本,后来再后来的开发中也遇到了不少问题
1>很明显,上面说了生成这个页面很快,但是问题来了,更新要怎么办?假设原本页面有20个按钮,然后又增加了20个按钮,由于之前在MainPager.cs中已经写了大量逻辑了,再重新生成会覆盖掉MainPager.cs,然后我想到了在生成的MainPager.cs中自动加入代码标识块,标识哪一部分是需要更新,哪一部分是不需要更新的,但是这样写代码量多了经常会把逻辑写到更新区,导致重新生成后被覆盖
2>由于所有的组件都是自动去判断并获取的,那么如果一个物体上有Button组件和Image组件,这个时候我可能逻辑上只需要控制Image组件就可以,但是却获取到了Button,具体获取谁我设了权值,但是遇到不同的业务逻辑还是不完美
解决方案:
1>由于最后生成的是一个单独的页面文件,所以更新会出现问题是必然,那么如果把需要更新的内容作为父类,然后再生成一个具体的业务逻辑脚本继承这个父类,每次UI界面变动只更新父类就好了
2>约定大于配置,让一切都按照需求并且按照约定的规则来获取,那么就知道要获取哪个组件了
网友评论