需要三个场景,场景A,场景B,场景C;

场景A:一个按钮,点击加载场景B;

场景B:从A切换到C过度场景,加载进度条;

场景C:目标场景;

创建OnProgress.cs脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; public class OnProgress : MonoBehaviour { public void OnBtnClick()
{
Debug.Log("clicked");
Globe.nextSceneName = "MainScene";//目标场景名称
SceneManager.LoadScene("Loading");//加载进度条场景
}
}

创建一个panel,在panel下创建一个button,将OnProgress脚本挂载到canvas,点击button,设置button属性,绑定脚本方法,点击加号,选择canvas中刚才绑定脚本中的方法OnBtnClick。至此,A场景完成。

创建B场景Loading:

Loading场景由两部分组成,加载进度百分比和进度条:

文本就不说了,说明下进度条的实现,进度条实际是一个Image,设置Image Type为filled,fill Method为horizonal,这里一定要添加source Image,否则下面的Image Type不会出来。

另外说下添加图片,普通的图片添加到assets中不能直接添加到Source Image中,需要对图片进行设置,如下图:

OK,再看进度条加载过程的实现:

创建AsyncLoadScene脚本:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement; public class Globe
{
public static string nextSceneName;
} public class AsyncLoadScene : MonoBehaviour
{
public Text loadingText;
public Image progressBar; private int curProgressValue = ; private AsyncOperation operation; // Use this for initialization
void Start()
{
if (SceneManager.GetActiveScene().name == "Loading")
{
//启动协程
StartCoroutine(AsyncLoading());
}
} IEnumerator AsyncLoading()
{
operation = SceneManager.LoadSceneAsync(Globe.nextSceneName);
//阻止当加载完成自动切换
operation.allowSceneActivation = false; yield return operation;
} // Update is called once per frame
void Update()
{ int progressValue = ; if (curProgressValue < progressValue)
{
curProgressValue++;
} loadingText.text = curProgressValue + "%";//实时更新进度百分比的文本显示   progressBar.fillAmount = curProgressValue / 100f;//实时更新滑动进度图片的fillAmount值   if (curProgressValue == )
{
operation.allowSceneActivation = true;//启用自动加载场景  
loadingText.text = "OK";//文本显示完成OK   }
}
}

将脚本挂在到Loading场景的camera上面。设置对象:

这样进度条加载场景就完成了,C场景就不介绍了,就是你要跳转的目标场景。

Unity3D 场景切换加载进度条实现的更多相关文章

  1. unity中实现场景之间加载进度条

    using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using UnityEngine.UI ...

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

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

  3. Unity 异步加载进度条

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

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

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

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

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

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

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

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

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

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

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

  9. js页面加载进度条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. input 下拉框 的实践

    有一个需求  需要做一个input 框  点击出现列表 于是想到了  datalist控件 <input type="text" list="itemlist&qu ...

  2. 快速滑动时 `cellForRow` 的调用次数

    问题 有一个 1000 个 cell 的 tableView,刚刚进入界面时,contentOffset 为 0.用手快速滑动 tableView,直至最下面一个 cell 显示在屏幕上. 这个过程中 ...

  3. iOS-消除CocoaPods内容警告

    前言 2018年2月26日 农历正月十一 星期一 今天就想更新下博客,内容不多,心情复杂: 突然想吟诗一首: 其实,我是一个善良的人: 其实,我是一枚... 算了,还是说正事吧 消除CocoaPods ...

  4. 纯css实现不固定行数的文本在一个容器内垂直居中

    项目中要实现的效果如图: html代码 及 css代码: <!DOCTYPE html> <html> <head> <meta charset=" ...

  5. POJ 1126

    #include <stdio.h> #include <string> #include <iostream> using namespace std; int ...

  6. 放弃jQuery,使用原生js吧!

    转自:http://itakeo.com/blog/2015/07/28/nojq/ 随着IE6.7.8的逐渐淘汰,HTML5的兴起,以及侧重点放在了移动端,jQuery可能变的不在那么重要,原生一样 ...

  7. Java之集合(二十四)ConcurrentLinkedDeque

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7517454.html 1.前言 本章介绍并发队列ConcurrentLinkedDeque,这是一个非阻塞,无锁 ...

  8. Spring Security构建Rest服务-1200-SpringSecurity OAuth开发APP认证框架

    基于服务器Session的认证方式: 前边说的用户名密码登录.短信登录.第三方登录,都是普通的登录,是基于服务器Session保存用户信息的登录方式.登录信息都是存在服务器的session(服务器的一 ...

  9. 搭建hadoop_之 创建3个虚拟机配置好网络

    (创建3个虚拟机,1个作为主服务器,二个作为从节点)   一.安装虚拟机 Windwos:VMware Workstation Pro MAC:VMware Fusion 安装:     ** 创建空 ...

  10. Android 开发服务类 04_ServletForPOSTMethod

    ServletForPOSTMethod 业务类 package com.wangjialin.internet.servlet; import java.io.IOException; import ...