Unity中的场景管理基础2

文章讲述了Unity3D中异步加载场景与同步加载的主要区别,同步加载会阻塞线程,而异步加载允许在加载过程中执行其他代码。文中提供了使用AsyncOperation加载场景的示例,通过判断AsyncOperation.isDone来确认加载是否完成,并控制Scene的激活。
摘要由CSDN通过智能技术生成

(1)异步场景添加场景:

  1. 异步加载场景和同步加载场景的区别:同步加载的过程线程是阻塞的,异步是不会阻塞线程的,可以在加载的过程中继续去执行一些代码

  1. 异步加载场景使用的API

    void Start()
    {
        //SceneManager.LoadScene(1,LoadSceneMode.Additive);
        //GameObject Capsule = GameObject.Find("Capsule");
        //DontDestroyOnLoad(Capsule);
        StartCoroutine(Load());//使用协程异步加载

    }
    private IEnumerator Load()
    {
        AsyncOperation asyncOperation=SceneManager.LoadSceneAsync(1);
        asyncOperation.allowSceneActivation = false;
        while(asyncOperation.progress<0.9f)
        {
            Debug.Log("当前的进度是:" + asyncOperation.progress);
            yield return null; 
       }
        asyncOperation.allowSceneActivation = true;
        if(asyncOperation.isDone)
        {
            Debug.Log("加载并跳转完毕");
        }
        else
        {
            Debug.Log("还没加载并跳转完毕");
        }
    }

SceneManager.LoadSceneAsync(),参数和同步加载的相同,有返回值,返回一个AsyncOperation

3、AsyncOperation类有什么用:AsyncOperation.isDone可以用来判断是否加载完成;AsyncOperation.allowSceneActivation加载完成后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值