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);
}
}