Unity异步加载场景

Unity异步加载场景

1、过渡场景


using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Globe
{
    public static string nextSceneName;
}
public class LoadingTest : MonoBehaviour
{
    public Slider slider;//滑动条
    public Text text;//文本
    float loadPro = 0;
    // 用以接受异步加载的返回值
    AsyncOperation AsyncOp = null;
    string names;
    void Start()
    {
        slider.value = 0;
        AsyncOp = SceneManager.LoadSceneAsync(Globe.nextSceneName, LoadSceneMode.Single);//异步加载场景名为"Demo Valley"的场景,LoadSceneMode.Single表示不保留现有场景
        AsyncOp.allowSceneActivation = false;//allowSceneActivation =true表示场景加载完成后自动跳转,经测,此值默认为true
    }
    //点击按钮,开始加载下一场景,文本和进度条显示加载进度
    //void StartLoad()
    //{
    //    AsyncOp = SceneManager.LoadSceneAsync("nextSceneName", LoadSceneMode.Single);//异步加载场景名为"Demo Valley"的场景,LoadSceneMode.Single表示不保留现有场景
    //    AsyncOp.allowSceneActivation = false;//allowSceneActivation =true表示场景加载完成后自动跳转,经测,此值默认为true
    //}
    void Update()
    {
        if (AsyncOp != null)//如果已经开始加载
        {
            loadPro = AsyncOp.progress; //获取加载进度,此处特别注意:加载场景的progress值最大为0.9!!!
        }
        if (loadPro >= 0.9f)//因为progress值最大为0.9,所以我们需要强制将其等于1
        {
            loadPro = 1;
        }
        slider.value = Mathf.Lerp(slider.value, loadPro, 1 * Time.deltaTime);//滑动块的value以插值的方式紧跟进度值
        if (slider.value > 0.99f)
        {
            slider.value = 1;
            AsyncOp.allowSceneActivation = true;
        }
        text.text = string.Format("{0:F0}%", slider.value * 100);//文本中以百分比的格式显示加载进度
    }
    //#region 跳转场景
    //public void TiaoZhuanSceneBtn(string scenename)//跳转场景
    //{
    //    SceneManager.LoadScene(scenename);
    //}
    //public void LoadingBtn(string LoadName)//跳转加载场景
    //{
    //    Globe.nextSceneName = LoadName;
    //    SceneManager.LoadScene("Loading");
    //}
    //#endregion
}

2、调用方法

    public void LoadingBtn(string LoadName)//跳转加载场景
    {
        Globe.nextSceneName = LoadName;
        SceneManager.LoadScene("Loading");
    }
  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ke-Di

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值