Unity中场景异步加载
引入命名空间
using UnityEngine.UI;
using UnityEngine.SceneManagement;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI; //引入命名空间
- using UnityEngine.SceneManagement;//引入命名空间
- public class S2Manager : MonoBehaviour
- {
- //UI进度条
- private Slider _proSlider; //滑动条
- //目的是对场景进行控制 获取进度值 和允许显示
- private AsyncOperation _async;
- //UI应该达到的进度
- private int _currProgress;
- //1. 获取滑动条
- //协同加载(异步加载 不断获取进度值 经过计算赋值给滑动条)
- // Use this for initialization
- void Start ()
- {
- _currProgress = ;
- _async = null;
- _proSlider = GameObject.Find("Slider").GetComponent<Slider>();
- StartCoroutine("LoadScene");
- }
- // Update is called once per frame
- void Update ()
- {
- //目的就是现实进度
- _proSlider.value = _currProgress / 100.0f;
- }
- IEnumerator LoadScene()
- {
- //临时的进度
- int tmp;
- //异步加载
- _async = SceneManager.LoadSceneAsync("S3"); //跳转场景为S3
- //先不显示场景 等到进度为100%的时候显示场景 必须的!!!!
- _async.allowSceneActivation = false;
- #region 优化进度的
- while (_async.progress < 0.9f)
- {
- //相当于滑动条应该到的位置
- tmp = (int) _async.progress * ;
- //当滑动条 < tmp 就意味着滑动条应该变化
- while (_currProgress < tmp)
- {
- ++_currProgress;
- yield return new WaitForEndOfFrame();
- }
- }//while end 进度为90%
- tmp = ;
- while (_currProgress < tmp)
- {
- ++_currProgress;
- yield return new WaitForEndOfFrame();
- }
- #endregion
- //处理进度为0 ~0.9的0
- //进度条完成 允许显示
- _async.allowSceneActivation = true;
- }
- }
同步和异步:
1. 同步直接怼过来 (若机器low或场景大 就会卡)
2. 异步 直接怼到一个中间场景(过度场景(显示进度条)) --> 到场景S3
3. 在异步中的两个while循环没啥大作用, 目的就是优化进度条的!!!
Unity中场景异步加载的更多相关文章
- LoadScene场景异步加载
LoadScene场景异步加载 using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; usin ...
- 新手教程:不写JS,在MIP页中实现异步加载数据
从需求谈起:在 MIP 页中异步加载数据 MIP(移动网页加速器) 的 加速原理 除了靠谱的 MIP-Cache CDN 加速外,最值得一提的就是组件系统.所有 JS 交互都需要使用 MIP 组件实现 ...
- UNITY所谓的异步加载几乎全部是协程,不是线程;MAP3加载时解压非常慢
实践证明,以下东西都是协程,并非线程(thread): 1,WWW 2,AssetBundle.LoadFromFileAsync 3,LoadSceneAsync 其它未经测试 此问题的提出是由于一 ...
- Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案
我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位.重复.闪烁等问题,其实这些问题总结起来就是一个问题,我们需要对这些问题进行ListView的优化. 比如L ...
- listview中getview异步加载网络图片
前言:本以为异步加载挺简单,因为网上代码多,但真想要做好,还真不那么简单,从看代码到弄懂再到自己写,实在是有太多的东西需要学了,用了两天的时间,终于弄出来了,因为用到回调函数,所以理解起来可能难度有点 ...
- Android中ListView异步加载数据
1.主Activity public class MainActivity extends Activity { private ListView listView; private ArrayLis ...
- IOS中UITableView异步加载图片的实现
本文转载至 http://blog.csdn.net/enuola/article/details/8639404 最近做一个项目,需要用到UITableView异步加载图片的例子,看到网上有一个E ...
- cocos2d-x lua中实现异步加载纹理
原文地址: http://www.cnblogs.com/linchaolong/p/4033118.html 前言 问题:最近项目中需要做一个loading个界面,界面中间有一个角色人物走动的 ...
- Unity中资源动态加载的几种方式比较
http://blog.csdn.net/leonwei/article/details/18406103 初学Unity的过程中,会发现打包发布程序后,unity会自动将场景需要引用到的资源打包到安 ...
随机推荐
- 微信小程序设计指南
微信小程序设计指南 · 小程序 https://developers.weixin.qq.com/miniprogram/design/index.html
- 偏函数应用 pfa
- 题解 P3805 【【模板】manacher算法】
题解 P3805 [[模板]manacher算法] 我们先看两个字符串: ABCCBA ABCDCBA 显然这两字符串是回文的 然而两个串的对称中心的特性不同,第一个串,它的对称中心在两个C中间,然而 ...
- 【linux】新添加一块硬盘制作LVM卷并进行分区挂载
linux服务器新添加一块硬盘,可以直接将盘格式化挂载就能用,比如挂载在/usr/local目录,但是这样有一个弊端,就是如果这一块磁盘满了,后续想要扩容的话,不能继续挂载这个/usr/local挂载 ...
- office 2010 激活工具 迷你KMS使用说明
“迷你KMS”——“”体态轻盈仅只1MB.但却一身承担两大职能:KMS服务器和客户激活端.“迷你KMS”可激活Microsoft Office 2010系列三大版本,以及Windows 7企业.专业版 ...
- Linux内核同步【转】
本文转载自:http://blog.csdn.net/a775992553/article/details/8797710 Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访 ...
- HDU3811 Permutation —— 状压DP
题目链接:https://vjudge.net/problem/HDU-3811 Permutation Time Limit: 6000/3000 MS (Java/Others) Memor ...
- <tx:advice/> 有关的设置
将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事 ...
- 一步一步教你简单完成 Android USB开发
项目中有一个新的需求,要求可以连接一个USB体温枪,APP可以从体温枪中读取到体温数据,一番搜寻之后发现一个封装很棒的USB通信库. github地址:usb-serial-for-android 准 ...
- 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 ...