Unity3D游戏制作之 UI框架设计(一):架构设计理论篇

只是做了简单修改,添加了其他功能,为了体现使用了框架后的可拓展性

本篇就基于Unity游戏引擎UGUI为基础,对UI界面游戏架构做一些有益探索与研究。首先我们来研究一下大型游戏项目中,没有UI框架容易导致与出现的问题:

  1. 以ARPG为例,多个场景会反复出现相同的“UI窗体”,造成多个场景中反复加载相同的UI窗体。

    解决思路: “UI框架” 需要缓存项目(例游戏项目)中常用的“UI窗体"。

  2. 开发商业复杂项目时,各个UI(UI脚本)之间传值,容易出现“紧耦合”的情况,容易导致项目的“可复用性”降低。

    解决思路:各个UI的生成、销毁、切换,都是通过框架(Manger)实现,各个UI之间不直接联系(传值),开发类似“消息传递中心”的机制来负责所有“UI窗体”或者UI脚本之间的传值。

  3. 卡牌、RPG等游戏类型项目,很多情况下会出现多个“弹出窗体” 叠加的现象,开发人员需要“手工”维护窗体中间的层级关系。

    解决方案:设计UI框架系统,使用“栈”的数据结构,保存与控制当前所有需要显示的“UI窗体”的层级关系。

  4. 商业项目中多个“UI窗体” 叠加出现时,保持“UI窗体”的“模态显示”非常重要(即: 弹出子窗口时,不允许玩家操作父窗体),否则容易出现各种误操作。

    解决方案:设计的框架本身,需要对当前显示的窗体做“遮挡处理”,即:不允许用户绕过当前“UI窗体”直接操作底层窗体,或者误操作点击项目中的3D游戏对象等。

为了解决以上商业开发遇到的各种问题,因此设计如下UI窗体架构的“功能设计图”:

Unity3D游戏制作之 UI框架设计(一):架构设计理论篇_第1张图片

项目源码工程下载地址:https://github.com/AnderTroy/UIFrameWork

你可能感兴趣的:(Unity3D,游戏Ui框架设计,UGUI)