71 lines
2.2 KiB
C#
71 lines
2.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class ScenesManager : BaseManager<ScenesManager>
|
|
{
|
|
private ScenesManager()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 同步加载场景
|
|
/// </summary>
|
|
/// <param name="sceneName">场景名称</param>
|
|
/// <param name="action">场景加载后需要做的</param>
|
|
public void LoadScene(string sceneName, UnityAction action = null,
|
|
LoadSceneMode loadSceneMode = LoadSceneMode.Single)
|
|
{
|
|
SceneManager.LoadScene(sceneName, loadSceneMode);
|
|
action?.Invoke();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 异步加载场景
|
|
/// </summary>
|
|
/// <param name="sceneName">场景名称</param>
|
|
/// <param name="action">委托</param>
|
|
/// <param name="loadSceneMode">加载场景方式</param>
|
|
public void LoadSceneAsyn(string sceneName, UnityAction action = null,
|
|
LoadSceneMode loadSceneMode = LoadSceneMode.Single)
|
|
{
|
|
MonoMgr.Instance.StartCoroutine(ReallyLoadScene(sceneName, action));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 协程加载场景
|
|
/// </summary>
|
|
/// <param name="sceneName">场景名称</param>
|
|
/// <param name="action">委托</param>
|
|
/// <param name="loadSceneMode">加载场景方式</param>
|
|
/// <returns></returns>
|
|
private IEnumerator ReallyLoadScene(string sceneName, UnityAction action = null,
|
|
LoadSceneMode loadSceneMode = LoadSceneMode.Single)
|
|
{
|
|
AsyncOperation ao = SceneManager.LoadSceneAsync(sceneName, loadSceneMode);
|
|
while (!ao.isDone)
|
|
{
|
|
yield return null;
|
|
}
|
|
E_SceneName currentSceneName;
|
|
switch (sceneName)
|
|
{
|
|
case "03_OfficeScene":
|
|
currentSceneName = E_SceneName.Office;
|
|
break;
|
|
case "04_ToolMaterialScene":
|
|
currentSceneName = E_SceneName.ToolRoom;
|
|
break;
|
|
case "05_LiveScene":
|
|
currentSceneName = E_SceneName.LiveScene;
|
|
break;
|
|
default:
|
|
currentSceneName = E_SceneName.None;
|
|
break;
|
|
}
|
|
GameManager.ProcessMgr.currentSceneName = currentSceneName;
|
|
action?.Invoke();
|
|
}
|
|
} |