unity之使用协程异步加载场景
2017-03-31 23:59
567 查看
public class UnityScriptManage : MonoBehaviour { public void CallCoroutine(IEnumerator routine) { StartCoroutine(routine); } } public class Test { public void LoadScene(LoadSceneMode mode) { //调用了UnityScriptManage中的CallCoroutine GlobalComManage.Instance.UnityScript.CallCoroutine(LoadAsync(mode)); } //调用此接口,执行了一次yield return async之后就不执行了。且async.progress输出为0 private IEnumerator LoadAsync(LoadSceneMode mode) { async = SceneManager.LoadSceneAsync(sceneName, mode); async.allowSceneActivation = false; while (!async.isDone && async.progress < 0.8f) { yield return async; } } //调用此接口,协程正常调用,但是由于async.allowSceneActivation设置为false所以scene.isLoaded状态一直为false,且由于async.allowSceneActivation设置为false之后,async.progress最后一直停留在0.9。 private IEnumerator LoadAsync(LoadSceneMode mode) { async = SceneManager.LoadSceneAsync(sceneName, mode); Scene scene = SceneManager.GetSceneByName(sceneName); async.allowSceneActivation = false; while (!scene.isLoaded) { yield return null; } async.allowSceneActivation = true; async = null; } }
最后版本:把allowSceneActivation设置为false后,Unity就只会加载场景到90%,剩下的10%要等到allowSceneActivation设置为true后才加载
public class UnityScriptManage : MonoBehaviour { public void CallCoroutine(IEnumerator routine) { StartCoroutine(routine); } } public class Test { public void LoadScene(LoadSceneMode mode) { GlobalComManage.Instance.UnityScript.CallCoroutine(LoadAsync(mode)); } private IEnumerator LoadAsync(LoadSceneMode mode) { async = SceneManager.LoadSceneAsync(sceneName, mode); async.allowSceneActivation = false; while (!async.isDone && async.progress < 0.8f) { yield return async; } } private IEnumerator LoadAsync(LoadSceneMode mode) { async = SceneManager.LoadSceneAsync(sceneName, mode); Scene scene = SceneManager.GetSceneByName(sceneName); async.allowSceneActivation = false; while (async.progress < 0.9f) { yield return null; } async.allowSceneActivation = true; while(!scene.isLoaded) { yield return null; } async = null; } }
相关文章推荐
- unity5.3新API使用进度条,异步加载场景的代码
- Unity异步加载场景loading条
- Unity异步加载场景loading条
- Unity 异步加载场景
- 浅谈Unity资源异步加载和Coroutine的使用
- Unity:异步加载场景资源进度界面
- 【unity】异步加载游戏场景与异步加载游戏资源进度条
- 【Unity】场景异步加载的进度条制作
- unity场景切换异步加载
- [置顶] unity中关于异步loading场景的加载
- Unity异步加载场景与加载进度条
- Unity异步加载场景loading条 复制代码
- Unity游戏开发使用Assetbundle加载场景的原理
- 玲珑杯Unity开发心得——进度条界面(异步加载游戏场景)
- unity使用AssetBundle使用记录一(续)--场景打包成AssetBundle并加载
- Unity 异步加载场景
- Unity游戏开发使用Assetbundle加载场景实战
- 关于场景切换,unity异步加载,loading条做法
- Unity游戏开发使用Assetbundle加载场景实战
- unity中异步加载游戏场景与异步加载游戏资源进度条