游戏UI管理

发布时间:2017/01/24 2049次浏览

在游戏中存在着大量的界面,这些界面有着不同的逻辑和功能,这些界面需要有一个统一的管理方法,下面我分析一下我对UI管理的理解。

 

界面的类型

 

界面主要分为四种形式

 

正常界面

游戏UI管理1.png

需要有先后顺序,有打开和关闭功能,关闭按钮一般为返回的样式,打开后记录打开顺序并可以关闭返回到之前打开的界面

 

 

固定界面

游戏UI管理2.png

固定不动,没有打开方式和关闭方式,不能遮挡其他固定界面,通常多个界正常面共用一小块的一样的UI时,将这一块独立出来设置为固定界面。

 

弹出界面

游戏UI管理3.png

打开后不会做记录,关闭按钮一般都设置为关闭的意思,并不会出现返回的样式。所有弹出界面在正常界面之上

 

消息界面

游戏UI管理4.png

与弹出界面类似,但消息界面上无按钮,或者只有关闭按钮,一般消息界面会在一段时间后制动关闭。所有消息界面在弹出界面之上。

 

 

界面的排序

 

这四类界面排在最前端的是:消息界面>弹出界面>固定界面>正常界面。将这四类界面分别放在四个不同的根节点下,并且保证他们的顺序正确,这样就能保证大的分类顺序不会出错。

 

游戏UI管理5.png

在同一类的界面中也需要进行排序,比如A界面和B界面都是正常界面,如何对他们进行排序呢,我们使用栈来管理,后进入的放在最上面,也最靠前显示,关闭的界面就移除栈顶的界面。

如果界面中包含3D元素,还需要考虑界面的厚度,不仅需要在层级上排序,在厚度上也需要排序

 

 

界面的方法和属性

 

界面的显示顺序的思路有了,就需要考虑界面内部有哪些方法和属性了

 

类型属性

根据类型来放置ui的位置

 

全屏属性

如果为全屏,那么同一栈中该界面之下的界面就可以关闭了。

 

厚度的属性

某些时候界面上需要显示3D模型,如果界面在栈中那么需要根据厚度将栈之后的界面统一后移,防止界面穿帮,有点类似于排队的感觉。

 

打开后的委托

有些时候会有前往功能,比如A界面要前往到C界面,但又必须经过B界面,那么我们就可以打开B界面,并在委托里写入打开C界面,就可以实现A界面前往C界面了,这只是一个简单的例子。

 

关闭后的委托

与打开后的委托类似,在关闭界面的时候调用

 

 

初始化方法

界面初始化,只需要运行一次

 

刷新方法

每次打开界面都会调用的方法,刷新界面数据

 

上层界面关闭后的刷新方法

当界面在栈中,并且之上的界面刚好关闭,执行的方法,通常也是刷新界面

 

关闭界面的方法

 

打开界面的方法


 

界面管理的方法

 

界面的方法和属性有了,还需要一个统一的管理者来管理这些界面,这个管理者应该有以下基本功能

 

登记注册所有界面的方法

 

关闭所有界面的方法

 

显示某个界面的方法

 

关闭某个界面的方法

 

关闭正常界面中栈顶界面的方法

 

某个界面是否打开的方法

 

获取某个界面的方法

 

 

 

以上是我通过观察其他游戏UI表现并结合战国跑酷中对UI管理方法得出的结果,思路如果不对还请提出建议。

 

 

战国工作室  供稿