【Unity3D框架】关于手游的UI框架的一些思考

本文探讨了Unity3D手游UI框架的设计,包括组件和可复用性、MVC模式、层级管理和自动化、栈与队列的应用,以及性能优化。作者分享了如何处理UI组件的复用,实现MVC模式,以及通过栈和队列解决界面弹出的顺序问题,同时提出性能优化策略,如对象池管理。

一、概述

        不知不觉入行Unity3D也四五年了,期间经历了几个手游项目,正好想写点什么总结性的文章来记录一下自己对过往经验的一些思考。

        这篇文章主要记录一下正在使用的UI框架在演进过程中遇到的问题的一些小的思考。

二、关于组件和可复用

        在实践过程中,UI界面元素其实大致分为两类,一类是重复的结构在UI界面以列表、网格等形式重复出现,一类是非重复或者容器性质的UI界面元素。所以在设计UI管理类的时候,思路上就可以定义两个概念:面板和组件。基本关系可以是:所有完整的界面都是面板,而面板同时可以持有多个组件,并作为一个父级单位管理好子级的组件的生命周期。

        组件存在的意义一方面是可以拼一个预设体,让面板负责实例化,达到复用。另一方面是,对于复杂结构的面板,可以做功能拆分,减少超重型面板。

        有了这个划分,UI脚本的模板即可以围绕此设计出来面板和组件两类。

        由于Unity的UGUI只提供了ScrollRect,在此基础上,UI框架本身可以封装类似于iOS的ListView/CollectionView或者Android的RecycleView等风格的自动管理组件复用的UI,这样,类似于列表和网格类的UI就可以通用,而无需每次都去造轮子。

三、关于MVC

        数据、逻辑、界面分离的话题,并不是Unity开发独有。

        一般来说,支持热更新的项目,用的比较多的应该是C#底层 + Lua脚本的形式(不讨论ILRuntime和Huatuo等C#热更新框架)。大多数的UI界面写在Lua层比较方便进行热更

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留待舞人归

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值