unity3d
无缝场景切换解决方案
(1) -
简单场景切换
所谓无缝场景切换,无非是涉及到场景或物体的预读,复杂点涉及下场景卸载,在复杂点涉及到场景二
维数组,再在复杂点涉及数据结构用二叉树实现场景资源有序的读取与卸载。当然,复杂的我以后慢慢
再说,比较懒,先写最简单的,如果能起到抛砖引玉作用,那这篇文章也算是物有所值了。
无缝场景切换的优缺点:
优点:
1.
场景(游戏)连贯性。
2.
相对于多场景游戏,不需要等待场景更换(在进入场景后已经在实时加载下一个场景了)
3.
相对于单个大场景,这种方式能避免所有的场景数据被装入内存(尽管
u3d
优化很好并不会被渲染出
来),很大的数据在内存里影响你游戏的性能
(
特别是在
iphone
这种小内存环境
)
。
缺点:
1.
操作繁琐(本文介绍比较基础简单的方式)
2.
开发者要求较高(注意保持逻辑清晰,不然后期你会全乱掉的)
涉及到几个
U3D
函数:
Application.LoadLevel(lv)
场景读取
(
记着用多场景前要现在
File-Build Setting
里登记下场景,
才能
在脚本里读取到
)
DontDestroyOnLoad(object)
保持物体在场景切换的时候不被卸载
(
能保持他的所有属性哦
)
*AssetBundle
类
预读资源
(主要用于
web3d
,
运行时实时从服务器下载需要的场景资源)
涉及到几个基础知识:
static
静态类、静态变量:在整个游戏中都不会被重新加载,所以可以当全局全场景变量使用,主要用
于记录场景数组。