原创内容,转载请注明原文网址: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做小地图




