赞
踩
通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长。为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景。因为Loading场景包含的资源较少,所以加载速度快。在加载主场景的时候一般会在Loading界面中显示一个进度条来告知玩家当前加载的进度。在Unity中可以通过调用Application.LoadLevelAsync
函数来异步加载游戏场景,通过查询AsyncOperation.progress
的值来得到场景加载的进度。
第一步当加载完Loading场景后,调用如下的LoadGame
函数开始加载游戏场景,使用异步加载的方式加载场景1(Loading场景为0,主场景为1),通过Unity提供的Coroutine机制,我们可以方便的在每一帧结束后调用SetLoadingPercentage
函数来更新界面中显示的进度条的数值。
- public void LoadGame() {
-
- StartCoroutine(StartLoading_1(1));
- }
-
- private IEnumerator StartLoading_1(int scene) {
-
- AsyncOperation op = Application.LoadLevelAsync(scene);
- while(!op.isDone) {
-
- SetLoadingPercentage(op.progress * 100);
- yield return new WaitForEndOfFrame();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。