游戏中的场景切换

游戏中的场景切换

        游戏中存在多个简单场景的,在进入游戏前可能在场景之间来回的切换,场景返回依据的是场景打开的顺序,而场景的打开是UI点击事件驱动的。 从这个角度看,打开UI时记录其打开的场景,关闭UI时关闭其打开的场景,建立UI栈通过控制UI栈的进出,可以控制场景的顺序打开与退出。 不同的UI可以打开相同的场景,可以通过UI保存一份场景数据, 在不同UI打开相同场景时,使得同一个场景恢复出不同的状态, 场景类本身是无状态的, 此外对于单个UI内切换场景的情况, 可以在UI内部建立场景栈,以便从其他场景返回时, 能够返回到UI内部打开的不同场景。场景切换的结构如下图所示:


        如上图,UI管理器建立UI栈,打开的UI入栈,关闭的UI出栈, 栈结构能够维护打开的先后顺序, 以便在回退的时候恢复之前打开的UI, 而场景通常是通过UI打开的, 因此可以打开场景的先后顺序过继给UI, 通过UI的回退实现场景的回退,而UI在打开场景时会生成一份关于该场景状态的数据(如镜头位置、加载的模型、模型的状态、光影效果、音效等), 以便回退到此场景时能够复现场景。对于单个UI可以切换多个场景的情况需要进行相应的调整, 将UI的场景改为场景栈, 记录打开顺序, 而场景栈内的信息就包括 场景ID 与场景驱动数据类。此外仅有UI栈对于场景的切换还是不是十分的方便ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值