using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; /// /// 关卡 /// public enum E_Level { /// /// 片头关卡 /// newsplash = 0, /// /// 加载关卡 /// Loading = 1, /// /// 更新关卡 /// Update = 2, /// /// 登陆关卡 /// Login = 3, Main = 6, /// /// 战斗前场景 /// Guide = 5, /// /// 战斗关卡 /// Battle = 6, /// /// 无尽之塔 /// Endless = 14, /// /// 守护模式 /// Defense = 18 } /// /// 关卡管理者 /// public class LevelManager : MonoBehaviour { /// /// 单键 /// private static LevelManager pInit = null; /// /// 当前关卡 /// public E_Level mCurLevel { get; set; } /// /// 当前关卡资源名称 /// public string mCurLevelResName = ""; /// /// 要打开的窗口名称 /// public string mWindowName { get; set; } /// /// 要打开的窗口附带的参数 /// public object mParameter { get; set; } /// /// /// private bool mIsAutoUnloadLoing = true; /// /// 获取单键 /// /// 单键实例 public static LevelManager Instance() { return pInit; } /// /// 初始化 /// private void Awake() { // 初始化 pInit = this; } /// /// 加载关卡 /// /// 关卡枚举 /// (仅在战斗关卡有效)进入关卡需要打开的界面名称 /// 进入关卡需要打开的界面所需的参数 /// 加载动画(默认蓝背景+ 小人) public void LoadLevel(E_Level _level, string _windowName = "", object _parameter = null, int _isloadtype = 2) { mCurLevelResName = _windowName; mCurLevel = _level; mWindowName = _windowName; mParameter = _parameter; NpcManager.Instance.Init(); if (_isloadtype != 0) { UI_LoadingWindow.Instance().Show(_isloadtype); Invoke("Lateload", 0.15f); } else { SceneManager.LoadScene((int)_level); } } /// /// 加载关卡 /// /// 关卡资源名称(此模式需要先加关卡载资源在加载关卡) /// (仅在战斗关卡有效)进入关卡需要打开的界面名称 /// 进入关卡需要打开的界面所需的参数 /// 加载动画(默认蓝背景+ 小人) public void LoadLevel(string _levelName, string _windowName = "", object _parameter = null, int _isloadtype = 2, E_Level _levelType = E_Level.Battle) { mCurLevel = _levelType; mCurLevelResName = _levelName; mWindowName = _windowName; mParameter = _parameter; if (_isloadtype != 0) { UI_LoadingWindow.Instance().Show(2); Invoke("Lateload", 0.15f); } else { SceneManager.LoadScene(_levelName); } } /// /// 延迟加载 /// private void Lateload() { SceneManager.LoadScene((int)E_Level.Loading); } }