.SceneManagement预加载场景通过设置这个属性的bool值

.SceneManagement预加载场景通过设置这个属性的bool值

我们在制作的时候,遇到切换场景的时候,一般直接使用

SceneManager.LoadScene("你要加载的场景名称")

这样加载新场景是没有问题的,但是如果目标场景中要加载的内容很多unity 场景切换,就会出现卡顿的情况。

所以我们就有了做加载场景的需求,让场景切换看起来自然。

unity如何用ui按钮切换场景_unity 场景切换_unity切换场景卡顿

解决方法是使用异步加载场景材质材料,等下一个场景加载完成后再切换。

我们需要制作一个 UI 来指示在切换之前正在加载。您可以根据需要制作此 UI。

unity 场景切换_unity如何用ui按钮切换场景_unity切换场景卡顿

unity切换场景卡顿_unity 场景切换_unity如何用ui按钮切换场景

一般来说3D素材,这个UI是需要隐藏的,你可以用自己的方式来处理隐藏。这里我直接setActivate。

接下来我们定义

输入场景(字符串场景名),需要的时候调用

协程预加载场景(字符串场景名称)

unity 场景切换_unity切换场景卡顿_unity如何用ui按钮切换场景

这里需要使用协程来加载unity 场景切换,以保证主程序的正常运行。不使用协程预加载是没有意义的。

unity切换场景卡顿_unity 场景切换_unity如何用ui按钮切换场景

unity 场景切换_unity切换场景卡顿_unity如何用ui按钮切换场景

在协程中,我们首先需要显示加载界面。

unity 场景切换_unity如何用ui按钮切换场景_unity切换场景卡顿

然后开始预加载。这里使用了UnityEngine.SceneManagement的命名空间,我们会得到一个加载状态的返回值。

unity如何用ui按钮切换场景_unity切换场景卡顿_unity 场景切换

然后判断返回的加载状态,加载完成后切换到下一个场景。

unity切换场景卡顿_unity如何用ui按钮切换场景_unity 场景切换

这是最基本的开关,加载完成后会自动切换。

unity切换场景卡顿_unity 场景切换_unity如何用ui按钮切换场景

在此基础上可以读取当前加载进度,返回值在0-0.9之间。当该值达到0.9时,表示加载完成。

通过设置该属性的bool值,可以控制加载完成后是否自动切换到下一场景。

比如通过下面的写法,可以在loading后等待播放器输入任意键进入下一个场景。

unity 场景切换_unity如何用ui按钮切换场景_unity切换场景卡顿

unity如何用ui按钮切换场景_unity 场景切换_unity切换场景卡顿

七彩紫色泛羽

unity 场景切换_unity如何用ui按钮切换场景_unity切换场景卡顿

公共课测试:MonoBehaviour

{

publicGameObject 加载场景GameObject;

public void 进入场景(字符串场景名称)

{

StartCoroutine(预加载场景(场景名称));

}

IEnumerator 预加载场景(字符串场景名称)

unity 场景切换_unity切换场景卡顿_unity如何用ui按钮切换场景

{

加载 sceneGameObject.SetActive(true);

AsyncOperation 加载操作 = SceneManager.LoadSceneAsync(场景名称);

while(!加载操作.isDone)

{

收益返回空;

}

}

}