码迷,mamicode.com
首页 > 编程语言 > 详细

Unity 异步加载场景

时间:2014-12-24 23:59:24      阅读:775      评论:0      收藏:0      [点我收藏+]

标签:

效果图如下:

技术分享

 

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

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;   

    }

}

Unity 异步加载场景

标签:

原文地址:http://www.cnblogs.com/plateFace/p/4183700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!