unity 中大场景的流式加载

####0:讨论群git

qq群号:390313628 unity 4.6 版本运行.net

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

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

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

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

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

具体代码能够参考Demo中的StreamLoadLevel.cs 和LevelConfigData.cs源码

输入图片说明

输入图片说明

输入图片说明

相关文章
相关标签/搜索