Unity异步加载+进度条显示?超简单!

异步加载在很多游戏中都会用到,特别是场景偏大的游戏中。那我们今天就一起来学习一下如何使用异步加载吧。(所有的步骤说明,要点都在代码中注释了,觉得贴心就给个赞吧!)
话不多说,直接上代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;  //引入命名空间


public class AsyncLoading : MonoBehaviour
{
    //这里为了方便演示就直接拖组件赋值了哈
    public Text loadingTxt; //进度条加载进度数值显示
    public Slider slider;   //进度条

    AsyncOperation operation;

	void Start ()
    {
        slider.value = 0;
        StartCoroutine(LoadingAsync());
	}
	
    IEnumerator LoadingAsync()
    {
        operation = SceneManager.LoadSceneAsync("需要加载的场景名称");
        operation.allowSceneActivation = false;//为了阻止加载完成就跳转场景--我们需要等loadingTxt到100%时候才跳转
        while (!operation.isDone) //未加载完时
        {
            if (operation.progress<0.9f)  
            {
                slider.value = operation.progress;
            }
            else
            {
                slider.value = 1.0f;//因为加载到0.9的时候就已经完成了加载,所以我们需要在此赋值为1--为了让loadingTxt显示100%
            }
            loadingTxt.text = (int)(slider.value * 100) + "%";

            if (slider.value>=0.9f) //当loadingTxt显示100%的时候就跳转场景
            {
                operation.allowSceneActivation = true;
            }
            yield return null;
        }
    }
    


}

就这样异步加载就搞定啦。欢迎大家留言分享交流

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值