当我们开发一个大型项目的时候-会遇到这样的问题(地形场景的切换)这个只是字面意思-并不是重场景1的100 100 100坐标一下切换到场景2的100 100 100坐标这样的方法--(如果您以为是这样的技术和代码)那就不用看了。这个技术的实质意义是为了解决--多地形场景带来的大量内存占用问题-举个我的例子-我的测试项目是1013张绘制地形--在不用上面的技术情况下-占用了我4.2G的内存。想想下-如果一个大型的游戏直接这么运行的话)一下就会带来5-8G的内存占用--这个游戏还能玩吗?
下面让我们来研究实现的方法和代码
涉及到几个U3D函数:(引用高人的文档介绍)
Application.LoadLevel(lv) 场景读取(记着用多场景前要现在File-Build Setting里登记下场景,才能在脚本里读取到) DontDestroyOnLoad(object) 保持物体在场景切换的时候不被卸载(能保持他的所有属性哦)
*AssetBundle 类 预读资源(主要用于web3d,运行时实时从服务器下载需要的场景资源)
涉及到几个基础知识:
static 静态类、静态变量:在整个游戏中都不会被重新加载,所以可以当全局全场景变量使用,主要用于记录场景数组。
Collider的Is Trigger属性:设置成True,他是可以穿越不会产生能量传递的,但是,他是可以接受碰撞侦测的。配合主角的OnTriggerEnter事件,就可以知道你是否正在穿越一个Trigger了。在这里,我们用在判断何时加载新场景上。
2.制作场景边界
使用Cube + IsTrigger=True属性是最好的办法。
1)如果是双场景切换,注意两个场景边界坐标别重在一起,不然你