Unity3D_异步加载场景(进度条)
- 创建两个场景:现在的场景“NowScene”,要加载的场景“LoadScene”;
- “NowScene”如图所示,“LoadScene”任意;
- 创建脚本“AsyncLoadScene”,复制如下代码,挂在到Canvas上;
- 推拽"Slider"和"Text"到面板上;
- 注意将要加载的场景添加到《Scenes In Build》,否则加载时回报空引用。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement; public class AsyncLoadScene : MonoBehaviour
{
// 进度条
public Slider loadingSlider;
// 文字显示加载进度
public Text loadingText;
// 进度条的行进速度
private float SliderLoadSpeed = ;
// 场景加载类的对象
private AsyncOperation operation;
// 加载进度(由于加载进度不能为 1,所以需要此变量在加载进度大于某一个值时让加载进度变为1)
private float targetValue; void Start ()
{
// 初始化进度条
loadingSlider.value = 0.0f; if (SceneManager.GetActiveScene ().name == "NowSence") {
// 启动协程
StartCoroutine (AsyncLoading ());
}
} void Update ()
{
// operation.progress 加载进度
targetValue = operation.progress; if (operation.progress >= 0.9f) {
// operation.progress的值最大为0.9
targetValue = 1.0f;
} if (targetValue != loadingSlider.value) {
// 插值运算(进度条向当前加载进度趋近)
loadingSlider.value = Mathf.Lerp (loadingSlider.value, targetValue, Time.deltaTime * SliderLoadSpeed);
// 避免插值运算一直进行
if (Mathf.Abs (loadingSlider.value - targetValue) < 0.01f) {
loadingSlider.value = targetValue;
}
}
// 显示加载百分比
loadingText.text = ((int)(loadingSlider.value * )).ToString () + "%"; // 当进度条完成 100% 时,加载场景
if ((int)(loadingSlider.value * ) == ) {
//允许异步加载完毕后自动切换场景
operation.allowSceneActivation = true;
}
} // 加载场景的协程
IEnumerator AsyncLoading ()
{
// 异步加载场景
operation = SceneManager.LoadSceneAsync ("LoadSence");
// 阻止当加载完成自动切换
operation.allowSceneActivation = false; yield return operation;
} }
Unity3D_异步加载场景(进度条)的更多相关文章
- android 网络异步加载数据进度条
ProgressDialog progressDialog = null; public static final int MESSAGETYPE = 0; private void execute( ...
- WPF BackGroundWord 异步加载更新进度条示例
<Window x:Class="AsynchronousLoading.MainWindow" xmlns="http://schemas.microsoft.c ...
- Unity异步加载场景loading条
using UnityEngine; using System.Collections; public class LoadingScene : MonoBehaviour { public UISl ...
- Unity 异步加载场景
效果图如下: 今天一直在纠结如何加载场景,中间有加载画面和加载完毕的效果动画! A 场景到 B , 看见网上的做法都是 A –> C –> B. C场景主要用于异步加载B 和 播放一些 ...
- js - 预加载+监听图片资源加载制作进度条
这两天遇到一个新需求:一个一镜到底的h5动画.因为功能的特殊性,就要求我们提前监听页面的静态图片是否全部加载完毕.即处理预加载. 总结下来,下次这种需求需要提前注意以下几点: 一.图片而不是背景图 本 ...
- 【Unity笔记】使用协程(Coroutine)异步加载场景
using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using System; public ...
- cocos2dx 3.x(加载cocostudio进度条)
// // MyLoagingScene.hpp // My // // Created by work on 16/10/13. // // #ifndef MyLoagingScene_hpp # ...
- js 多张图片加载 环形进度条
css 部分使用 svg 绘制环形 svg{width:100px; height: 100px; margin:15% auto 25%; box-sizing:border-box; displa ...
- Unity异步加载场景
在游戏中,经常可以看到从一个关卡跳到另一个关卡时,有一个显眼的进度条,研究了下,其时也很简单: public void LoadAScene() { StartCoroutine(LoadSce ...
随机推荐
- hdu-1179 Ollivanders: Makers of Fine Wands since 382 BC.---二分图匹配模板
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1179 题目大意: 有n个人要去买魔杖,有m根魔杖(和哈利波特去买魔杖的时候一样,是由魔杖选人).接下 ...
- 【BZOJ1562】[NOI2009] 变换序列(匈牙利算法)
点此看题面 大致题意: 给你一个长度为\(n\)的序列\(D\),让你找到一个字典序最小的\(n\)的排列\(T\),满足\(D_i=min(|T_i-i|,n-|T_i-i|)\). 建图 我想建图 ...
- TensorFlow 内置重要函数解析
概要 本部分介绍一些在 TensorFlow 中内置的重要函数,了解这些函数有时候更加方便我们进行数据的处理或者构建神经网络. 这些函数如下: tf.one_hot() tf.ra ...
- Bootstrap 按钮(Button)插件加载状态
通过按钮(Button)插件,您可以添加进一些交互.比如控制按钮的状态.或者为其它组件(工具栏)创建按钮组. 加载状态 如需向按钮添加加载状态,只需要简单地向 button 元素添加 data-loa ...
- SQL查询出每门课都大于80 分的学生姓名
Course表如下: 查询出每门课都大于80 分的学生姓名有两种方法. 1.select distinct name from Course where name not in (select di ...
- 操作系统(5)_内存管理_李善平ppt
i386先通过段是管理,在通过页是管理
- C++性能优化笔记
最近着手去优化项目中一个模块的性能.该模块是用C++实现,对大量文本数据进行处理. 一开始时,没什么思路,因为不知道性能瓶颈在哪里.于是借助perf工具来对程序进行分析,找出程序的性能都消耗在哪里了. ...
- http 实战练习
http 实战练习 建立httpd服务器,要求提供两个基于名称的虚拟主机: (1)www.X.com,页面文件目录为/web/vhosts/x:错误日志为/var/log/httpd/x.err,访问 ...
- django开发基础
一.配置静态文件 https://www.cnblogs.com/lshedward/p/10351051.html 二.路由分发 https://www.cnblogs.com/lshedward/ ...
- 笔记-python-standard library-8.1 data types-datetime
笔记-python-standard library-8.1 data types-datetime 1. Datatimes 本章节内容为日期和时间处理类和方法. 1.1. date ...