基于UGUI 的 游戏UI框架的一些想法

UI 框架可以很简单,具有打开某些窗口,关闭某些窗口的功能。

也可以很复杂,具有动画效果,层级管理,灰度管理,各种bar配置,链式打开模式,消息窗口 等等。

而作为一个设计人员,最主要的是要使得你的设计已于扩展,留下便于扩展的接口。这里针对我们的游戏UI框架,想到了一些改进,也想到了一些自己在这方面的设计方案。

这里我们要做的UI框架就是比较复杂的游戏UI框架了,能完成的功能主要有


显示某指定的窗口+当前窗口显示的时候的动画效果+层级随意改变+灰度自动化+bar配置+支持链式打开模式+支持消息窗口+支持异步加载以及转圈模式


UIBaseWindow 作为窗口的抽象层,他应该具有如下的功能

>提供上一层ui的id (用于链式加载) preWindowId

>提供灰度值 alpha

>提供深度 depth

>提供显示接口 show

>提供关闭接口 close

>提供销毁接口 release

>提供动画方式 IUIAnimation

>提供bar IUIToolBar

>提供消息接口 OnMsg (主要用于Control层调用UI层)


UIManager 作为窗口的管理器,他应该具有如下的功能

>缓存已经打开了的窗口 Dictionary<WndID, UIBaseWindow> cacheOpenWnd

>显示指定的某个窗口 showWindow(windowid,  bAppend),如果bappend = true 则代表了是链式加载。

这个函数流程应该比较多,这里大概理一下

ShowWindow(wndID, bAppend){

判断WndId 是否存在缓存中,如果存在则直接提出来,不存在则从内存中加载

       内存中加载了窗口后判断是否已经达到了缓存的窗口上线,如果达到了则清除访问最老的一个

判断是否是链式加载,如果是链式加载,则新加载的窗口的preWindowID = curShowWndID

  调整alpha值(根据打开的窗口个数进行灰度自动化,越靠近屏幕的alpha值越大)

调整depth

}

>调整alpha 值

>调整depth 值


IUIAnimation 作为窗口动画的接口存在 主要提供

>动画的开启 Start

>动画的结束 End

>动画结束的回掉

就目前来看的话游戏UI动画主要有这么几类:位置移动型,fade型,Scale型


IUIToolBar 作为窗口的控制器主要提供如下功能

>返回事件 BackEvent

>配置指定的材料以及个数 configItem (大部分是金币,材料等等的配置)

就目前的来说主要有:无toolbar,topBar, leftBar


UIDefine 作为窗口的一些预定义的一些东西

>定义窗口的ID

>定义窗口的ID 对应的prefab path (这里建议定义一套规则,就可以省去了。比如prefab_ui_窗口ID)


基本上的UI框架的想法就是这个样子了~~具体不足后面再补

晚安思密达~~

 


















  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值