unity 中大场景的流式加载

####0:讨论群

qq群号:390313628 unity 4.6 版本运行

Demo源码:http://git.oschina.net/liyonghelpme/unityRpg qq群:390313628

####1.问题 对于比较大的场景来讲,一次性加载进内存,缺点是内存占用较大,加载时间较长,优点实现简单,后续游戏会比较流畅。 但是对于一些特别复杂的场景,场景物件比较多的情况下,则需要引入流式的场景加载方法,根据玩家的时间和空间的局部性,只加载当前游戏的内容。

####2.系统设计 这样需要场景有多层设计,最简单的是两层设计。上层设计数据量少可以完整放到内存中,而细节设计则在需要的时候加载,例如这里参考火炬之光给出一个基于房间的设计思路。 火炬之光的大场景由一个个小的房间拼接而成,每个房间有两个连接处,对于入口和出口,只有一个连接处,而一个大场景即通过小房间的对应口的连接而构成。 参考一个关卡的设计: 输入图片说明

#####2.1 存储 有了房间的概念之后,我们将关卡由哪些房间组成保存起来,也可以根据连接关系生成随机的房间。 对每个房间内部的结构,独立保存起来,针对火炬之光的房间来讲,火炬的放假都是由小元素块拼接而成,因此可以首先分离每个小元素块,接着存储房间内每个位置使用哪个小元素块。

#####2.2加载过程 加载的过程即首先判断玩家在哪个房间,接着预先加载临近的房间。 整个流程如下: 加载起始入口房间,需要等待整个入口加载结束才能进入游戏; 预先加载下一个房间,下一个房间采用每帧加载一个块的机制,等玩家靠近下一个房间的时候,已经加载结束了。 接着每当玩家进入一个新房间,则继续预先加载下一个房间。

具体代码可以参考Demo中的StreamLoadLevel.cs 和LevelConfigData.cs

输入图片说明

输入图片说明

输入图片说明

转载于:https://my.oschina.net/u/186074/blog/474704

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值