Cargando escenas de Unity

Cargue la escena usando la carga asíncrona.

using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneLoadModel
{
    private AsyncOperation asyncOperation;

    /// <summary>
    /// 场景加载异步操作对象
    /// </summary>
    public AsyncOperation AsyncOperation
    {
        get
        {
            return asyncOperation;
        }
        set
        {
            asyncOperation = value;
        }
    }
}

public class SceneLoadManager
{
    #region Singleton

    private static SceneLoadManager instance;

    private SceneLoadManager()
    {
        sceneLoadModel = new SceneLoadModel();
    }
    
    public static SceneLoadManager Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new SceneLoadManager();
            }

            return instance;
        }
    }

    #endregion

    private SceneLoadModel sceneLoadModel;

    /// <summary>
    /// 加载主界面
    /// </summary>
    public void LoadMainInterface()
    {
        SceneManager.LoadScene(0);
    }

    /// <summary>
    /// 加载主场景
    /// </summary>
    public void LoadMainScene()
    {
        sceneLoadModel.AsyncOperation = SceneManager.LoadSceneAsync(1, LoadSceneMode.Additive);
        
        // 切换到加载游戏场景
        UIManager.instance.SwitchToPanel(UIPanelConst.LOAD_SCENE_PANEL);
        
        // 游戏时间正常化
        Time.timeScale = 1;
    }

    /// <summary>
    /// 场景是否加载完成
    /// </summary>
    /// <returns></returns>
    public bool SceneLoadIsDone()
    {
        return sceneLoadModel.AsyncOperation.isDone;
    }

    /// <summary>
    /// 获取当前场景加载进度
    /// </summary>
    /// <returns></returns>
    public float SceneLoadProgress()
    {
        return sceneLoadModel.AsyncOperation.progress;
    }
}

Supongo que te gusta

Origin blog.csdn.net/heaventianjianke/article/details/127164227
Recomendado
Clasificación