Unity功能 进度条加载跳转场景

 

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LoadGame : MonoBehaviour {

    public Slider processView;//进度条

	void Start () {
        LoadGameMethod();        
	}	
	
    public void LoadGameMethod()
    {
        StartCoroutine(StartLoading_4(2));//开启加载游戏场景协程
    }

    private IEnumerator StartLoading_4(int scene)
    {
        int displayProgress = 0;//当前进度值
        int toProgress = 0;//当前进条想要达到的值
        AsyncOperation op = SceneManager.LoadSceneAsync(scene); //异步加载
        op.allowSceneActivation = false;//场景加载完后禁止切换
        while (op.progress < 0.9f)
        {
            toProgress = (int)op.progress * 100;
            while (displayProgress < toProgress)
            {
                ++displayProgress;
                SetLoadingPercentage(displayProgress);
                yield return new WaitForEndOfFrame();//等待当前帧
            }
        }

        toProgress = 100;
        //从90%追到100%
        while (displayProgress < toProgress)
        {
            ++displayProgress;
            SetLoadingPercentage(displayProgress);
            yield return new WaitForEndOfFrame();
        }
        op.allowSceneActivation = true;
    }
    //设置进度条
    private void SetLoadingPercentage(float v)
    {
        processView.value = v / 100;
    }

   
}

猜你喜欢

转载自blog.csdn.net/cuijiahao/article/details/105968682