引入命名空间

using UnityEngine.UI;

using UnityEngine.SceneManagement;

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI; //引入命名空间
  5. using UnityEngine.SceneManagement;//引入命名空间
  6.  
  7. public class S2Manager : MonoBehaviour
  8. {
  9. //UI进度条
  10. private Slider _proSlider; //滑动条
  11. //目的是对场景进行控制 获取进度值 和允许显示
  12. private AsyncOperation _async;
  13. //UI应该达到的进度
  14. private int _currProgress;
  15. //1. 获取滑动条
  16. //协同加载(异步加载 不断获取进度值 经过计算赋值给滑动条)
  17. // Use this for initialization
  18. void Start ()
  19. {
  20. _currProgress = ;
  21. _async = null;
  22. _proSlider = GameObject.Find("Slider").GetComponent<Slider>();
  23. StartCoroutine("LoadScene");
  24. }
  25.  
  26. // Update is called once per frame
  27. void Update ()
  28. {
  29. //目的就是现实进度
  30. _proSlider.value = _currProgress / 100.0f;
  31. }
  32.  
  33. IEnumerator LoadScene()
  34. {
  35. //临时的进度
  36. int tmp;
  37. //异步加载
  38. _async = SceneManager.LoadSceneAsync("S3"); //跳转场景为S3
  39.  
  40. //先不显示场景 等到进度为100%的时候显示场景 必须的!!!!
  41. _async.allowSceneActivation = false;
  42. #region 优化进度的
  43. while (_async.progress < 0.9f)
  44. {
  45. //相当于滑动条应该到的位置
  46. tmp = (int) _async.progress * ;
  47.  
  48. //当滑动条 < tmp 就意味着滑动条应该变化
  49. while (_currProgress < tmp)
  50. {
  51. ++_currProgress;
  52. yield return new WaitForEndOfFrame();
  53. }
  54. }//while end 进度为90%
  55.  
  56. tmp = ;
  57. while (_currProgress < tmp)
  58. {
  59.  
  60. ++_currProgress;
  61. yield return new WaitForEndOfFrame();
  62. }
  63. #endregion
  64. //处理进度为0 ~0.9的0
  65.  
  66. //进度条完成 允许显示
  67. _async.allowSceneActivation = true;
  68.  
  69. }
  70. }

同步和异步:

1. 同步直接怼过来 (若机器low或场景大 就会卡)
2. 异步 直接怼到一个中间场景(过度场景(显示进度条)) --> 到场景S3
3. 在异步中的两个while循环没啥大作用, 目的就是优化进度条的!!!

Unity中场景异步加载的更多相关文章

  1. LoadScene场景异步加载

    LoadScene场景异步加载 using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; usin ...

  2. 新手教程:不写JS,在MIP页中实现异步加载数据

    从需求谈起:在 MIP 页中异步加载数据 MIP(移动网页加速器) 的 加速原理 除了靠谱的 MIP-Cache CDN 加速外,最值得一提的就是组件系统.所有 JS 交互都需要使用 MIP 组件实现 ...

  3. UNITY所谓的异步加载几乎全部是协程,不是线程;MAP3加载时解压非常慢

    实践证明,以下东西都是协程,并非线程(thread): 1,WWW 2,AssetBundle.LoadFromFileAsync 3,LoadSceneAsync 其它未经测试 此问题的提出是由于一 ...

  4. Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案

    我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位.重复.闪烁等问题,其实这些问题总结起来就是一个问题,我们需要对这些问题进行ListView的优化. 比如L ...

  5. listview中getview异步加载网络图片

    前言:本以为异步加载挺简单,因为网上代码多,但真想要做好,还真不那么简单,从看代码到弄懂再到自己写,实在是有太多的东西需要学了,用了两天的时间,终于弄出来了,因为用到回调函数,所以理解起来可能难度有点 ...

  6. Android中ListView异步加载数据

    1.主Activity public class MainActivity extends Activity { private ListView listView; private ArrayLis ...

  7. IOS中UITableView异步加载图片的实现

    本文转载至 http://blog.csdn.net/enuola/article/details/8639404  最近做一个项目,需要用到UITableView异步加载图片的例子,看到网上有一个E ...

  8. cocos2d-x lua中实现异步加载纹理

    原文地址:  http://www.cnblogs.com/linchaolong/p/4033118.html 前言   问题:最近项目中需要做一个loading个界面,界面中间有一个角色人物走动的 ...

  9. Unity中资源动态加载的几种方式比较

    http://blog.csdn.net/leonwei/article/details/18406103 初学Unity的过程中,会发现打包发布程序后,unity会自动将场景需要引用到的资源打包到安 ...

随机推荐

  1. 微信小程序设计指南

    微信小程序设计指南 · 小程序 https://developers.weixin.qq.com/miniprogram/design/index.html

  2. 偏函数应用 pfa

  3. 题解 P3805 【【模板】manacher算法】

    题解 P3805 [[模板]manacher算法] 我们先看两个字符串: ABCCBA ABCDCBA 显然这两字符串是回文的 然而两个串的对称中心的特性不同,第一个串,它的对称中心在两个C中间,然而 ...

  4. 【linux】新添加一块硬盘制作LVM卷并进行分区挂载

    linux服务器新添加一块硬盘,可以直接将盘格式化挂载就能用,比如挂载在/usr/local目录,但是这样有一个弊端,就是如果这一块磁盘满了,后续想要扩容的话,不能继续挂载这个/usr/local挂载 ...

  5. office 2010 激活工具 迷你KMS使用说明

    “迷你KMS”——“”体态轻盈仅只1MB.但却一身承担两大职能:KMS服务器和客户激活端.“迷你KMS”可激活Microsoft Office 2010系列三大版本,以及Windows 7企业.专业版 ...

  6. Linux内核同步【转】

    本文转载自:http://blog.csdn.net/a775992553/article/details/8797710 Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访 ...

  7. HDU3811 Permutation —— 状压DP

    题目链接:https://vjudge.net/problem/HDU-3811 Permutation Time Limit: 6000/3000 MS (Java/Others)    Memor ...

  8. <tx:advice/> 有关的设置

    将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事 ...

  9. 一步一步教你简单完成 Android USB开发

    项目中有一个新的需求,要求可以连接一个USB体温枪,APP可以从体温枪中读取到体温数据,一番搜寻之后发现一个封装很棒的USB通信库. github地址:usb-serial-for-android 准 ...

  10. HDU 1005 Number Sequence:矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 题意: 数列{f(n)}: f(1) = 1, f(2) = 1, f(n) = ( A*f(n ...