zoukankan      html  css  js  c++  java
  • Unity异步加载场景loading条

    using UnityEngine;
    using System.Collections;
    
    public class LoadingScene : MonoBehaviour {
    
        public UISlider processBar;
        private AsyncOperation async;
        private uint _nowprocess;
        // Use this for initialization
        void Start () 
        {
            _nowprocess = 0;
            StartCoroutine(loadScene());
        }
    
        IEnumerator loadScene()
        {
            //异步读取场景。
            //Globe.loadName 就是A场景中需要读取的C场景名称。
            async = Application.LoadLevelAsync(GlobalVaule.LoadLevelName);
            async.allowSceneActivation = false;
             //读取完毕后返回, 系统会自动进入C场景
             yield return async;
            
        }
    
        void Update()
        {
            if(async == null)
            {
                return;
            }
    
            uint toProcess;
            Debug.Log(async.progress * 100);
            if(async.progress < 0.9f)//坑爹的progress,最多到0.9f
            {
                  toProcess = (uint)(async.progress * 100);
            }
            else
            {
                 toProcess = 100;
            }
    
            if(_nowprocess < toProcess)
            {
                _nowprocess++;
            }
    
            processBar.value = _nowprocess/100f;
    
            if (_nowprocess == 100)//async.isDone应该是在场景被激活时才为true
            {
                async.allowSceneActivation = true;
            }
        }
    
    }

    比较简单,直接上代码了,比较坑爹的地方做了注释~

  • 相关阅读:
    压测 正则 性能分析
    时间复杂度 根号n
    务端如何防止重复支付 架构文摘 2021-05-02
    工具大于约定和文档
    千亿级公司低代码平台的测试体系介绍
    疑惑 题解
    计算几何相关总结
    树 题解
    矩阵加速相关总结
    loj6274 数字 题解
  • 原文地址:https://www.cnblogs.com/wonderKK/p/3976213.html
Copyright © 2011-2022 走看看