需要三个场景,场景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. 攻防组网之—-VMware路由器安装设置

    本文作者:i春秋作家——红发香克斯 前言 VMWare功能很强大,我一直有个想法是能不能用一台高配的主机利用VM虚拟化出一个或多个真实的子网,或者子网里面还有子网,其中使用VM自动的功能可以实现多个网 ...

  2. django 高级

    1.使用form: django的form提供了统一的结构化的后台验证机制,错误信息,也容易展现在前台界面上.由于python的面向对象,使得编写html也能够代码复用. a.多个field 综合验证 ...

  3. (转)MySQL 5.6 OOM 问题解决分享

    本文来自:杨德华的原创分享 | MySQL 5.6 OOM 问题解决分享 原文:http://www.cnblogs.com/zhoujinyi/p/5763112.html 延伸阅读:Linux的内 ...

  4. EJB3 事物

    在ejb3中事物分为两种类型:容器管理的事物(CMT).Bean管理的事物(BMT) 1.容器管理的事物(CTN) 是EJB默认的事物管理方式,即以对应的方法起始和结束来由EJB容器确定事务的始末边界 ...

  5. Flume搭建及学习(基础篇)

    转载请注明原文出处:http://www.cnblogs.com/lighten/p/6830439.html 1.简介 该文主要是翻译官方的相关文档,源地址点击这里.介绍一下Flume的一些基本知识 ...

  6. 数据输入——生成你需要的echart图(堆积柱状图、扇形图、嵌套环形图)

    最近论文需要一些比较直观的图表, 发现echart做出来的图还是比较美观的,这里介绍如何修改数据生成你需要的echart图. 1.堆积柱状图: http://echarts.baidu.com/exa ...

  7. [webrtc] 强制使用tcp传输

    以前笔记,整理 webrtc默认使用UDP传输,但是也可以通过TCP传输. 使用tcp传输,需要服务器中转,turnserver,licode,janus之类的服务器. 1. 如果使用turnserv ...

  8. CentOS7 yum方式安装 MongoDB 3.4 复制集

    CentOS7 yum方式安装 MongoDB 3.4 环境.准备 Centos7 系统 配置MongoDB的yum源,添加文件/etc/yum.repos.d/mongodb-org-3.4.rep ...

  9. 【数组】Maximum Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  10. Android 开发工具类 29_sendPOSTRequest

    sendPOSTRequest 业务类 package com.wangjialin.internet.userInformation.service; import java.io.OutputSt ...