unity 场景类 场景管理类的使用

同步加载场景

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class sceneTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //场景类 场景管理类
        //SceneManager.LoadScene(1);
        //获取当前场景
        Scene scene = SceneManager.GetActiveScene();
        //场景名称
        Debug.Log(scene.name);
        //场景是否已经加载
        Debug.Log(scene.isLoaded);
        //场景路径
        Debug.Log(scene.path);
        //场景索引
        Debug.Log(scene.buildIndex);
        GameObject[] gos = scene.GetRootGameObjects();
        Debug.Log(gos.Length);

        //场景管理类

        //创建新场景
        Scene newScene = SceneManager.CreateScene("newScene");
        //已加载场景个数
        Debug.Log(SceneManager.sceneCount);
        //卸载场景
        SceneManager.UnloadSceneAsync(newScene);

        //加载场景
        SceneManager.LoadScene("MyScene", LoadSceneMode.Additive);


    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

异步加载场景

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class AsyncSceneTest : MonoBehaviour
{
    // Start is called before the first frame update
    AsyncOperation operation;

    void Start()
    {
        StartCoroutine(loadScene());    
    }

    //协程方法用来异步加载场景
    IEnumerator loadScene()
    {
        operation = SceneManager.LoadSceneAsync(1);
        //加载完场景不要自动跳转
        operation.allowSceneActivation = false;
        yield return operation;
    }

    float timer = 0;
    // Update is called once per frame
    void Update()
    {
        //输出加载进度 0-0.9
        Debug.Log(operation.progress);
        timer += Time.deltaTime;
        if (timer > 5)
        {
            operation.allowSceneActivation = true;
        }
        
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值