热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity3D之异步加载游戏场景中关于进度条显示

关于异步任务相信大家都不会太陌生,今天主要是把自己这两天做过的一些过程和大家进行分享,说到异步任务,肯定有同步任务,一般的同

关于异步任务相信大家都不会太陌生,今天主要是把自己这两天做过的一些过程和大家进行分享,说到异步任务,肯定有同步任务,一般的同步场景加载的时候通常会用到的方法是 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&#43;&#43;;

        }

        if (HP &#61;&#61; 50)

        {

            HP &#61; 0;

        }

       

    }
//这里主要是进度条显示

    void OnGUI()

    {

        GUI.DrawTexture(new Rect(Screen.width / 2 - 270, Screen.height/2-50, 545, 100), picturebg);

        int blood_width &#61; blood_black.width * HP / 50;

        GUI.DrawTexture(new Rect(Screen.width/2-270, Screen.height/2-22, 540, 45), blood_black);

        GUI.DrawTexture(new Rect(Screen.width / 2 - 265, Screen.height/2-15, blood_width, 30), blood_red);

        GUI.Label(new Rect(Screen.width / 2 - 270, Screen.height / 2 - 40, 100, 30), "Loading......");

    }

}


推荐阅读
author-avatar
12sadad
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有