1、直接创建三个场景,其中第二个场景是用来显示进度条加载的界面,进度条用UISlider

2、这里提供两种方法,建议使用第一种,加载比较平缓

方法一:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; public class LoadingPags : MonoBehaviour
{ public UISlider progressBar; //进度条的引用
private string ScenceName="C"; //加载场景的名字
private float dtimer = ;
private float target = ; AsyncOperation op = null; private void Start()
{
Debug.Log("进入异步"); //op = SceneManager.LoadSceneAsync(ScenceName); //进入loadScene方法
//op.allowSceneActivation = false; progressBar.value = ; //弃用前将其进行初始化了
StartCoroutine(ProcessLoading());
} private void Update()
{
dtimer += Time.deltaTime;
progressBar.value = Mathf.Lerp(progressBar.value, target, dtimer * 0.2f);
//乘以的数值用来控制加载的速度,当新场景比较小的时候可以使用较小的值,有一定的效果,当场景加载较大的时候就不建议这么使用了
if(progressBar.value>=0.99f)
{
progressBar.value = ; //使其的值达到完整
op.allowSceneActivation = true; //为true 的时候才可以进行加载新的场景
} }
IEnumerator ProcessLoading()
{ op = SceneManager.LoadSceneAsync(ScenceName); //进入loadScene方法
op.allowSceneActivation = false; while (true) //死循环,使其在场景没有加载完成时就不退出了
{
target = op.progress;
if(target>=0.9f) //当场景加载了90%了
{
target = ;
yield break;
}
yield return ; }
}
}

第二种:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; public class Loadign : MonoBehaviour { public UISlider uislider;
private AsyncOperation asyn=null; public static string LoadingName; //声明一个静态的字符串变量俩保存要加载的场景名称
void Start ()
{
if(uislider)
{
//进度条丢失了
}
StartCoroutine(Loading());
} // Update is called once per frame
void Update ()
{ uislider.value = asyn.progress;
//Debug.Log(uislider.value);
//if (uislider.value>=0.8)
//{
// uislider.value = 1; // asyn.allowSceneActivation = true;
//} }
IEnumerator Loading()
{
asyn = SceneManager.LoadSceneAsync(); //加载第三个尝尽
asyn.allowSceneActivation = false;
//uislider.value = asyn.progress; //赋值
yield return asyn;
} //封装好的静态函数
public static void LoadNewScene(string value)
{
LoadingName = value;
SceneManager.LoadScene("Loadign");
} }

最新文章

  1. Tomcat 启动报错:No default web.xml
  2. React JS 基础知识17条
  3. PHP实现远程下载文件到本地
  4. Multi-source Replication
  5. python中的多线程【转】
  6. JavaScript笔记 第十六章 匿名函数和闭包
  7. Tomcat配置gzip压缩
  8. 4 常量类--Map常量
  9. Left/Right/Inner Join用法和区别
  10. 【ASP.NET Core分布式项目实战】(三)整理IdentityServer4 MVC授权、Consent功能实现
  11. Thread之十:停止线程方法汇总
  12. axios拦截http拦截
  13. sqlserver查询当前库下,一张表的表名,字段名,字段类型,字段长度
  14. 5W2H分析法
  15. 结合《剑指offer(第二版)》面试题51来谈谈归并排序
  16. Rendering with Replaced Shaders
  17. 【BZOJ1414】[ZJOI2009]对称的正方形(哈希)
  18. php反射API 获取属性/注释/方法 执行方法 实例
  19. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析
  20. Total Difference String

热门文章

  1. map/reduce之间的shuffle,partition,combiner过程的详解
  2. 【洛谷 P3402】 【模板】可持久化并查集
  3. 【网络爬虫入门01】应用Requests和BeautifulSoup联手打造的第一条网络爬虫
  4. Warning: File upload error - unable to create a temporary file in Unknown on line 0
  5. 关于RecylerView:1.在ScrollView的RecylerView滑动事件的处理。2.item之间的距离 小数取整
  6. v4l2驱动编写篇【转】
  7. 1006. Team Rankings
  8. 【LabVIEW技巧】策略模式
  9. 苹果电脑Mac OS系统重装图文详解
  10. Canvas 高级