赞
踩
记录一下最近学习的新的知识,关于解决多场景加载的问题,方便下次及时的巩固复习。
此次使用的是Unity的异步加载
来实现功能。
将一个大场景的地图分成好几个场景,利用玩家的距离来判断加载哪个场景和卸载哪个场景。
利用玩家的自身距离和预加载场景的距离判断
代码如下:
void DistanceCheck()
{
if (Vector3.Distance(player.position, transform.position) < loadRange)
{
LoadScene();
}
else
{
UnLoadScene();
}
}
检测范围如果过大,临近很多的场景都会被加载出来。
将预加载场景处创建空的物体碰撞体,当玩家的碰撞器与其碰撞时,场景加载。如下图所示:
代码如下:
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { shouldLoad = true; } } private void OnTriggerExit(Collider other) { if (other.CompareTag("Player")) { shouldLoad = false; } } void TriggerCheck() { if (shouldLoad) { LoadScene(); } else { UnLoadScene(); } }
大型项目内碰撞检测复杂,玩家容易与别的物体发生碰撞。
以上就是今天学到的内容,本文仅仅简单介绍了大场景、多场景加载的两种方法思路。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。