using UnityEngine;
///
/// UI管理器适配器
/// 为了保持向后兼容性,将旧的UIManager调用转发到新的EnhancedUIManager
///
public class UIManagerAdapter
{
///
/// 显示面板 - 兼容旧接口
///
public static T ShowPanel(bool isFade = true) where T : BasePanel
{
// 根据面板类型推断UI类型
UIPanelType panelType = GetPanelType();
return EnhancedUIManager.Instance.ShowPanel(panelType, false, isFade);
}
///
/// 隐藏面板 - 兼容旧接口
///
public static void HidePanel(bool isFade = true) where T : BasePanel
{
EnhancedUIManager.Instance.HidePanel(isFade);
}
///
/// 获取面板 - 兼容旧接口
///
public static T GetPanel() where T : BasePanel
{
return EnhancedUIManager.Instance.GetPanel();
}
///
/// 返回主界面
///
public static void ReturnToHome()
{
EnhancedUIManager.Instance.ReturnToHome();
}
///
/// 返回上一级
///
public static bool GoBack()
{
return EnhancedUIManager.Instance.GoBack();
}
///
/// 根据面板类型推断UI层级类型
///
private static UIPanelType GetPanelType() where T : BasePanel
{
string panelName = typeof(T).Name.ToLower();
// 主界面类型
if (panelName.Contains("main") || panelName.Contains("login") || panelName.Contains("standby"))
{
return UIPanelType.Base;
}
// 对话框类型
if (panelName.Contains("dialog") || panelName.Contains("confirm"))
{
return UIPanelType.Dialog;
}
// 用户管理相关面板
if (panelName.Contains("user") || panelName.Contains("add") ||
panelName.Contains("delete") || panelName.Contains("change"))
{
return UIPanelType.Popup;
}
// 警报覆盖面板
if (panelName.Contains("alarm") && panelName.Contains("overlay"))
{
return UIPanelType.System;
}
// 默认为普通面板
return UIPanelType.Normal;
}
}
///
/// 兼容性UIManager - 重定向到新系统
/// 保持与现有代码的兼容性
///
public class UIManager
{
private static UIManager instance = new UIManager();
public static UIManager Instance => instance;
public T ShowPanel(bool isFade = true) where T : BasePanel
{
return UIManagerAdapter.ShowPanel(isFade);
}
public void HidePanel(bool isFade = true) where T : BasePanel
{
UIManagerAdapter.HidePanel(isFade);
}
public T GetPanel() where T : BasePanel
{
return UIManagerAdapter.GetPanel();
}
///
/// 返回主界面 - 新功能
///
public void ReturnToHome()
{
UIManagerAdapter.ReturnToHome();
}
///
/// 返回上一级 - 新功能
///
public bool GoBack()
{
return UIManagerAdapter.GoBack();
}
}