原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2019/0326/426.html
UGUI异步加载场景进度条
从游戏开发运营一个场景进入到另外一个场景中,通常的做法是运用异步加载的方式来完成,为了优化玩家的体验,会在第一个场景中制造参加进度条显现加载进度。下面就来看看异步加载场景进度条的制造。
直接上代码,需求留意几个API就能够了。
usingUnityEngine.SceneManagement;//运用场景管理空间
AsyncOperationprog=SceneManager.LoadSceneAsync(“scene”);//新的异步加载场景API,返回异步参数
AsyncOperation.progress//获取进度(我常州手游开发测试了一下最大是0.9,可能要真正跳到场景才是1)
AsyncOperation.allowSceneActivation////假如加载完成,能否立即进入场景
代码如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Load : MonoBehaviour {
public Slider progressUI;
public Text progressValue;
private AsyncOperation prog;
void Start() {
prog = SceneManager.LoadSceneAsync("scene"); //异步加载场景
StartCoroutine(LoadingScene());
}
//设置滑动条
private void setProgressValue(int value) {
progressUI.value = value;
progressValue.text = value + "%";
}
private IEnumerator LoadingScene()
{
prog.allowSceneActivation = false; //假如加载完成,也不进入场景
int toProgress = 0;
int showProgress = 0;
//测试了一下,进度最大就是0.9
while (prog.progress < 0.9f)
{
toProgress = (int)(prog.progress * 100);
while ( showProgress<toProgress)
{
showProgress++;
setProgressValue(showProgress);
yield return new WaitForEndOfFrame(); //等候一帧
}
}
//计算0.9---1 其实常州游戏开发培训0.9就是加载好了,我估量真正进入到场景是1
toProgress = 100;
while (showProgress < toProgress )
{
showProgress++;
setProgressValue(showProgress);
yield return new WaitForEndOfFrame(); //等候一帧
}
prog.allowSceneActivation = true; //假如加载完成,能够进入场景
}
}
置信大家关于异步加载场景进度条的完成曾经都控制了,假如大家正在做的项目有碰到,就能够用上哦。
上篇:上一篇:u3d圆径模糊效果shader
下篇:下一篇:常州手游开发-UGUI做小地图