关于异步任务相信大家都不会太陌生,今天主要是把自己这两天做过的一些过程和大家进行分享,说到异步任务,肯定有同步任务,一般的同步场景加载的时候通常会用到的方法是 Application.LoadLevel("loading");但是大家是否也同时发现,同步加载的时候如果你的游戏对象相对较多的时候,场景加载速度是很慢的,就会伴有卡壳的现象出现,这样难免就会影响用户的体验效果,这就是用同步的效果。下面在介绍一下关于异步加载,异步加载分两种情况,情况一:使用以下方法application.LoadLevelAsync("ck1");情况二:使用以下方法application.LoadLevelAdditiveAsync("ck1");其实这两种方法加载的原理是一样的就是显示的效果不同罢了。要想实现进度条我们就应该新建一个专门显示进度条的场景,比如说有三个场景,在场景一中获得触发事件,先进入场景二中显示进度条,同时异步加载场景三,当场景三加载完后就进入场景三,情况一:场景二消失;情况二:场景二的对象继续执行,代码如下:
using UnityEngine;
using System.Collections;
public class loads : MonoBehaviour {
//申明异步对象
AsyncOperation async;
public Texture2D picturebg;
public Texture2D blood_red;
public Texture2D blood_black;
public int HP = 0;
public bool sss;
// Use this for initialization
void Start()
{
//StartCoroutine()
StartCoroutine(loadSence());
}
private IEnumerator loadSence()
{
//情况一
async = Application.LoadLevelAsync(Golble.loadName);
//情况二
async = Application..LoadLevelAdditiveAsync(Golble.loadName);
yield return async;
DontDestroyOnLoad(transform);
}
// Update is called once per frame
void Update()
{
if (HP < 50)
{
HP++;
}
if (HP == 50)
{
HP = 0;
}
}
//这里主要是进度条显示