关于游戏开发的ui框架开笔记
自己换了一份游戏开发的工作和之前的仿真开发有些的不同,通过这一个月的学习和理解,这里做一下笔记。
毕竟是几年前开发的框架,有些地方是可以值得借鉴学习的,先说一下ui吧,ui方向最常用的就是mvc的这种设计模式,也就是一个view用于展示的,一个model用于数据的,一个ctrl用于view和model交互用的。举个例子就是我有一个登陆界面的manager,用于登陆、注册、读取数据、存储数据等方法。我这里只是个例子具体什么方法等不需要太较真。有个loginUI的脚本,这个脚本有ui界面上的所有组件,model数据就不多介绍了。
相信大概对上述有些理解清晰了一些,接下来是比较 关键的,就是把ui和mono完全独立出来。具体做法就是把ui的各个界面做成perfab,通过对应的manager把ui加载出来,进行各个组建的赋值和事件注册等等。
这个做有几个好处:相信大家也能看出来,ui和mono分离首先对热更新有好处,而且代码的耦合性会降低很多,因为我只需要对应ui的manager和对应的ui脚本就完全可以对这个预制体,这个ui界面进行任何操作,更好支持逻辑与渲染分离操作。因为我的渲染就只是ui的perfab的一些展示,也就是上述说的对应的ui脚本,逻辑等都在一个对应的manager脚本中。但是也有缺点,你写一个界面的业务逻辑等需要多写一个脚本,而且当你perfab改变的时候你的ui脚本也需要改变,如果你要加一个button,ui脚本需要获取到这个button(通过查找),manager脚本就需要对这个脚本注册事件等。
首先ui和mono分离,就不能通过mono获取ui的实例了。所以需要new,在ui脚本的构造中加载ui的perfab,这样我有了这个ui界面的实例,我可以随时对它进行加载卸载,通过一个ui管理。也是很方便进行控制。这样你就会觉得这种模式非常的灵活。