场景切换之进度条显示进度百分比
2013-09-22 14:48
417 查看
using UnityEngine;
using System.Collections;
//using Globe;
public class Loading : MonoBehaviour {
private float fps = 2.0f;
private float time;
//一组动画的贴图,在编辑器中赋值。
public Texture2D[] animations;
private int nowFram;
//异步对象
AsyncOperation async;
//读取场景的进度,它的取值范围在0 - 1 之间。
int progress = 0;
void Start()
{
//在这里开启一个异步任务,
//进入loadScene方法。
Globe.loadName= "CompleteScene";
StartCoroutine(loadScene());
}
//注意这里返回值一定是 IEnumerator
IEnumerator loadScene()
{
//异步读取场景。
//Globe.loadName 就是A场景中需要读取的C场景名称。
async = Application.LoadLevelAsync(Globe.loadName);
//读取完毕后返回, 系统会自动进入C场景
yield return async;
}
void OnGUI()
{
//因为在异步读取场景,
//所以这里我们可以刷新UI
DrawAnimation(animations);
}
void Update()
{
//在这里计算读取的进度,
//progress 的取值范围在0.1 - 1之间, 但是它不会等于1
//也就是说progress可能是0.9的时候就直接进入新场景了
//所以在写进度条的时候需要注意一下。
//为了计算百分比 所以直接乘以100即可
progress = (int)(async.progress *100);
//有了读取进度的数值,大家可以自行制作进度条啦。
// Debug.Log("xuanyusong" +progress);
}
//这是一个简单绘制2D动画的方法,没什么好说的。
void DrawAnimation(Texture2D[] tex)
{
time += Time.deltaTime;
if(time >= 1.0 / fps){
nowFram++;
time = 0;
if(nowFram >= tex.Length)
{
nowFram = 0;
}
}
GUI.DrawTexture(new Rect( Screen.width/2-100,200,120,30) ,tex[nowFram] );
//在这里显示读取的进度。
GUI.Label(new Rect( Screen.width/2-100,235,300,60), "加载进度为" + progress+"%");
}
}
在unity编辑器重运行,看不到动态加载结果,当发布成exe时,就可以看到动态加载效果,及用GUIlable显示百分比即可
using System.Collections;
//using Globe;
public class Loading : MonoBehaviour {
private float fps = 2.0f;
private float time;
//一组动画的贴图,在编辑器中赋值。
public Texture2D[] animations;
private int nowFram;
//异步对象
AsyncOperation async;
//读取场景的进度,它的取值范围在0 - 1 之间。
int progress = 0;
void Start()
{
//在这里开启一个异步任务,
//进入loadScene方法。
Globe.loadName= "CompleteScene";
StartCoroutine(loadScene());
}
//注意这里返回值一定是 IEnumerator
IEnumerator loadScene()
{
//异步读取场景。
//Globe.loadName 就是A场景中需要读取的C场景名称。
async = Application.LoadLevelAsync(Globe.loadName);
//读取完毕后返回, 系统会自动进入C场景
yield return async;
}
void OnGUI()
{
//因为在异步读取场景,
//所以这里我们可以刷新UI
DrawAnimation(animations);
}
void Update()
{
//在这里计算读取的进度,
//progress 的取值范围在0.1 - 1之间, 但是它不会等于1
//也就是说progress可能是0.9的时候就直接进入新场景了
//所以在写进度条的时候需要注意一下。
//为了计算百分比 所以直接乘以100即可
progress = (int)(async.progress *100);
//有了读取进度的数值,大家可以自行制作进度条啦。
// Debug.Log("xuanyusong" +progress);
}
//这是一个简单绘制2D动画的方法,没什么好说的。
void DrawAnimation(Texture2D[] tex)
{
time += Time.deltaTime;
if(time >= 1.0 / fps){
nowFram++;
time = 0;
if(nowFram >= tex.Length)
{
nowFram = 0;
}
}
GUI.DrawTexture(new Rect( Screen.width/2-100,200,120,30) ,tex[nowFram] );
//在这里显示读取的进度。
GUI.Label(new Rect( Screen.width/2-100,235,300,60), "加载进度为" + progress+"%");
}
}
在unity编辑器重运行,看不到动态加载结果,当发布成exe时,就可以看到动态加载效果,及用GUIlable显示百分比即可
相关文章推荐
- [cocos2d]场景切换以及切换进度显示
- Unity3D【脚本】 异步切换场景,显示进度到滚动条
- [cocos2d]场景切换以及切换进度显示
- 批量上传图片(带百分比进度显示)项目源码
- Unity3D 技术之加载游戏场景并显示进度条详解
- JavaWeb项目实现上传文件动态显示进度百分比
- Android 游戏引擎libgdx 资源加载进度百分比显示
- node 可读流 读取文件百分比显示进度
- 在datatable中显示百分比进度条
- ios 滑块进度条百分比 显示进度
- ios使用AFN框架下载文件显示下载百分比带进度条
- Unity3D 使用 WWW 加载场景并显示进度条
- winform 下载文件显示进度和百分比
- Unity 利用协同程序实现场景切换时加载进度的监控
- 使用多线程实现文件的复制功能,并在控制台显示复制的进度,进度以百分比表示。
- ionic2检测下载更新代码及进度百分比显示问题
- 基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
- 异步加载动态进度条,显示百分比
- android,实现圆形循环进度条,不带百分比进度显示
- echo用法,显示百分比,进度等信息