您的位置:首页 > 移动开发 > Unity3D

Unity 异步加载场景

2014-12-24 23:48 330 查看
效果图如下:





今天一直在纠结如何加载场景,中间有加载画面和加载完毕的效果动画!

A 场景到 B , 看见网上的做法都是 A –> C –> B。 C场景主要用于异步加载B 和 播放一些加载场景的动画

AsyncOperation op = Application.LoadLevelAsync("C"); 异步加载C场景

op.allowSceneActivation = false; 加载完毕之后不自动跳转到B场景(在加载结束的时候,就可以播放一些加载完毕的动画) 播放完动画时候

op.allowSceneActivation = true; 就能进入B场景了O(∩_∩)O~

op.progress; 获取异步加载场景实际的进度值(0-1)

using UnityEngine;
using System.Collections;

public class LoadSceneB : MonoBehaviour {

public UISlider slider;         //进度条

void Start () {
LoadGame();
}

public void LoadGame() {
StartCoroutine(StartLoading("C"));
}

public IEnumerator StartLoading(string sceneName)
{
AsyncOperation op = Application.LoadLevelAsync(sceneName);
op.allowSceneActivation = false;

/* 实际根据场景加载的进度,来显示进度
while(op.progress < 0.9f)
{
slider.value = op.progress;             //实际加载场景的进度值显示在Slider里面
yield return new  WaitForEndOfFrame();
}*/

//由于C场景只有一张图加载太快了,以下代码就模拟下加载
for (int i = 0; i < 100; i++)
{
slider.value = i / 100f;
yield return new WaitForSeconds(0.01f);
}

slider.value = 1;
yield return new WaitForEndOfFrame();
op.allowSceneActivation = true;

}

}


源代码:http://yunpan.cn/cf4uz69Ffmbyc 提取码 c8f3

原文地址:http://blog.csdn.net/huang9012/article/details/38659011 (还介绍如何慢慢的让进度加载100情况)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: