48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using CG.UTility;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
/********************************************************************************
|
|
*Create By CG
|
|
*Function 状态模式对应上下文
|
|
*********************************************************************************/
|
|
namespace CG.Framework
|
|
{
|
|
public class StateContext
|
|
{
|
|
private State _state;
|
|
/// <summary>
|
|
/// 设置指定状态
|
|
/// </summary>
|
|
/// <param name="state"></param>
|
|
public void SetState(State state, string childrenPanelName = null)
|
|
{
|
|
_state = state;
|
|
string curSceneName = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name;
|
|
if (curSceneName.Equals(_state._SceneName))
|
|
{
|
|
UI_Manage.Instance.HidePanelGroup(UIGroup.Main);
|
|
UI_Manage.Instance.HidePanelGroup(UIGroup.Tip);
|
|
_state.EnterState();
|
|
}
|
|
else
|
|
{
|
|
//LoadScenes.Instance.LoadScene(_state._SceneName, _state.EnterState);
|
|
LoadScenesAsyncNoPanel.Instance.LoadSceneAsync(_state._SceneName, () =>
|
|
{
|
|
UI_Manage.Instance.ClearPanelGroup(UIGroup.Main);
|
|
UI_Manage.Instance.ClearPanelGroup(UIGroup.Tip);
|
|
_state.EnterState();
|
|
});
|
|
}
|
|
CG.UTility.PopUpMng._TriAble = true;
|
|
}
|
|
|
|
public Type GetState()
|
|
{
|
|
return _state.GetType();
|
|
}
|
|
}
|
|
}
|