游戏场景切换的问题
场景切换的时候从空场景到新场景的过程中由于数据多,会卡住一会,感觉就像是停止响应一样我想在空场景到新场景的过程中加个类似读条的东西,就做个东西在那转也可以.但是当开始加载新场景时,空场景里所有东西都会卡住,包括那个假的进度条!!
用个 异步加载 去加载下一个场景 当下一个场景在后台加载完毕再跳进去;
首先当前场景为A 目标为B 你需要再创建一个场景C 场景C 就是一个中间的过渡场景 资源越小越好,从场景A先进场景C 然后进行后台加载场景B
using UnityEngine;
using System.Collections;
namespace HDJ
{
public class SceneLoadingController : MonoBehaviour
{
private string nextSceneName = "";
public delegate void LoadingUIFunction(float progress);
private LoadingUIFunction loadingUI;
// Update is called once per frame
public void LoadingScene(string sceneName, LoadingUIFunction function)
{
nextSceneName = sceneName;
loadingUI = function;
StartCoroutine(LoadingStart());
}
public float speed1 = 0.01f;
public float speed2 = 0.03f;
AsyncOperation op = null;
float displayProgress = 0;
float toProgress = 0;
IEnumerator LoadingStart()
{
op = Application.LoadLevelAsync(nextSceneName);
op.allowSceneActivation = false;
if (op.progress < 0.89f)
{
while (displayProgress < 0.85)
{
displayProgress += speed1;
if (op.progress > 0.89f)
{
break;
}
loadingUI(displayProgress);
yield return new WaitForEndOfFrame();
}
}
toProgress = 1f;
while (displayProgress < toProgress)
{
displayProgress += speed2;
loadingUI(displayProgress);
yield return new WaitForEndOfFrame();
}
op.allowSceneActivation = true;
}
}
}