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");
} }

NGUI的异步场景加载进度条的更多相关文章

  1. Unity3D手游开发日记(3) - 场景加载进度条的完美方案

    我以为做个进度条很简单,分分钟解决,结果折腾了一天才搞定,Unity有很多坑,要做完美需要逐一解决. 问题1:最简单的方法不能实现100%的进度 用最简单的方法来实现,不能实现100%的进度,原因是U ...

  2. Unity 异步加载进度条

    public class View_LoadingScene : MonoBehaviour { //场景加载进度条对象 public GameObject loadingProgressBar; / ...

  3. Unity3D 场景切换加载进度条实现

    需要三个场景,场景A,场景B,场景C: 场景A:一个按钮,点击加载场景B: 场景B:从A切换到C过度场景,加载进度条: 场景C:目标场景: 创建OnProgress.cs脚本: using Syste ...

  4. 【Web前沿技术】纯 CSS3 打造的10个精美加载进度条动画

    之前向大家介绍8款优秀的 jQuery 加载动画和进度条插件,今天这篇文章向大家推荐10个纯 CSS3 代码实现精美加载进度条动画效果的方案.加载动画和进度条在网站和 Web 应用中的使用非常流行,特 ...

  5. css3 linear-gradient实现页面加载进度条效果

    最终效果图: html结构: <div>    <p class="p1">        <span></span>    < ...

  6. ajax页面加载进度条插件

    下面两个都是youtube视频的加载进度条效果的ajax插件 一.官网:http://ricostacruz.com/nprogress/官网 github:https://github.com/rs ...

  7. pace.js – 加载进度条插件

    这儿只是简单介绍一下这个插件pace.js. 在页面中引入Pace.js,页面就会自动监测你的请求(包括Ajax请求),在事件循环滞后,会在页面记录加载的状态以及进度情况.此插件的兼容性很好,可以兼容 ...

  8. 仿UC浏览器图片加载进度条

    前几天用UC浏览器看新闻(无意中给UC打了广告),看到它的图片加载进度条,正好最近有时间,所以就自己写了一个. 效果图如下 进度条的底色和填充颜色都可以调整. 首先中间的笑脸作为一个整体,其实现代码如 ...

  9. jQuery模拟页面加载进度条

    因为我们无法通过任何方法获取整个页面的大小和当前加载了多少,所以想制作一个加载进度条的唯一办法就是模拟.那要怎么模拟呢? 我们知道,页面是从上往下执行的,也就是说我们可以大致估算出在页面的某个位置加载 ...

随机推荐

  1. [hdu2460]network(依次连边并询问图中割边数量) tarjan边双联通分量+lca

    题意: 给定一个n个点m条边的无向图,q个操作,每个操作给(x,y)连边并询问此时图中的割边有多少条.(连上的边会一直存在) n<=1e5,m<=2*10^5,q<=1e3,多组数据 ...

  2. 【hdu1828/poj1177】线段树求矩形周长并

    题意如图 题解:这题非常类似与矩形面积并,也是维护一个被覆盖了一次以上的线段总长. 但是周长要算新出现的,所以每次都要和上一次做差求绝对值. x轴做一遍,y轴做一遍. 但是有个问题:矩形边界重合的时候 ...

  3. resultAPI示例

    什么是Restfull API Restfull API 从字面就可以知道,他是rest式的接口,所以就要先了解什么是rest rest 不是一个技术,也不是一个协议 rest 指的是一组架构约束条件 ...

  4. HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大上升子序列

    题目链接 DP基础题 求的是上升子序列的最大和 而不是最长上升子序列LIS DP[i]表示以a[i]结尾所能得到的最大值 但是a[n-1]不一定是整个序列能得到的最大值 #include <bi ...

  5. OPENId是什么, OAUTH 是什么

    what is openId open id is said to be a protocol which uses url as username, so if a website supports ...

  6. bufferd对象详解

    使用buffer类处理二进制数据 在客户端javascript脚本代码中,对于二进制数据并没有提供一个很好的支持.然后在nodejs中需要处理像TCP流或文件流时,必须要处理二进制数据.因此在node ...

  7. sqlserver 树形结构表查询 获取拼接结果

    树形表结构如下 IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[Test]') AND ty ...

  8. 生成应用的快捷方式action,权限

    action:"com.android.launcher.action.INSTALL_SHORTCUT" 权限:com.android.launcher.permission.I ...

  9. 【遍历集合】Java遍历List,Map,Vector,Set的几种方法

    关于list,map,set的区别参考http://www.cnblogs.com/qlqwjy/p/7406573.html 1.遍历list @Test public void testList( ...

  10. 如何才可以干掉Cortana进程,开机不启动

    直接禁用即可WIN——设置——隐私——语音.墨迹书写和键入——停止收集有关我的信息——关闭