Unity-SceneManager

using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class SceneManagerTest : MonoBehaviour
{
    public Text m_Text;
    public Button m_Button;

    void Start()
    {
        m_Button.onClick.AddListener(LoadButton);
        SceneManager.activeSceneChanged += OnSceneChanged;
        SceneManager.sceneLoaded += OnSceneLoaded;
        SceneManager.sceneUnloaded += OnSceneUnLoaded;
    }

    private void OnSceneUnLoaded(Scene arg0)
    {
        print("OnSceneUnLoaded " + arg0.name);
    }

    private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
    {
        print("OnSceneLoaded " + arg0.name + " " + arg1);
    }

    private void OnSceneChanged(Scene arg0, Scene arg1)
    {
        print("OnSceneChanged " + arg0.name + " " + arg1.name);
    }

    void LoadButton()
    {
        StartCoroutine(LoadScene());
    }

    IEnumerator LoadScene()
    {
        yield return null;

        AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("02_Menu");
        //不激活场景
        asyncOperation.allowSceneActivation = false;
        Debug.Log("Process :" + asyncOperation.progress);
        //当加载正在进行时,加载Text和进度条
        while (!asyncOperation.isDone)
        {
            m_Text.text = "Loading progress: " + (asyncOperation.progress * 100) + "%";
            if (asyncOperation.progress >= 0.9f)
            {
                m_Text.text = "Press the space bar to continue";
                if (Input.GetKeyDown(KeyCode.A))
                    //激活场景
                    asyncOperation.allowSceneActivation = true;
            }

            yield return null;
        }
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值