127 lines
3.2 KiB
C#
127 lines
3.2 KiB
C#
using UnityEngine;
|
||
|
||
/// <summary>
|
||
/// UI管理器适配器
|
||
/// 为了保持向后兼容性,将旧的UIManager调用转发到新的EnhancedUIManager
|
||
/// </summary>
|
||
public class UIManagerAdapter
|
||
{
|
||
/// <summary>
|
||
/// 显示面板 - 兼容旧接口
|
||
/// </summary>
|
||
public static T ShowPanel<T>(bool isFade = true) where T : BasePanel
|
||
{
|
||
// 根据面板类型推断UI类型
|
||
UIPanelType panelType = GetPanelType<T>();
|
||
return EnhancedUIManager.Instance.ShowPanel<T>(panelType, false, isFade);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 隐藏面板 - 兼容旧接口
|
||
/// </summary>
|
||
public static void HidePanel<T>(bool isFade = true) where T : BasePanel
|
||
{
|
||
EnhancedUIManager.Instance.HidePanel<T>(isFade);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取面板 - 兼容旧接口
|
||
/// </summary>
|
||
public static T GetPanel<T>() where T : BasePanel
|
||
{
|
||
return EnhancedUIManager.Instance.GetPanel<T>();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 返回主界面
|
||
/// </summary>
|
||
public static void ReturnToHome()
|
||
{
|
||
EnhancedUIManager.Instance.ReturnToHome();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 返回上一级
|
||
/// </summary>
|
||
public static bool GoBack()
|
||
{
|
||
return EnhancedUIManager.Instance.GoBack();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据面板类型推断UI层级类型
|
||
/// </summary>
|
||
private static UIPanelType GetPanelType<T>() 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;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 兼容性UIManager - 重定向到新系统
|
||
/// 保持与现有代码的兼容性
|
||
/// </summary>
|
||
public class UIManager
|
||
{
|
||
private static UIManager instance = new UIManager();
|
||
public static UIManager Instance => instance;
|
||
|
||
public T ShowPanel<T>(bool isFade = true) where T : BasePanel
|
||
{
|
||
return UIManagerAdapter.ShowPanel<T>(isFade);
|
||
}
|
||
|
||
public void HidePanel<T>(bool isFade = true) where T : BasePanel
|
||
{
|
||
UIManagerAdapter.HidePanel<T>(isFade);
|
||
}
|
||
|
||
public T GetPanel<T>() where T : BasePanel
|
||
{
|
||
return UIManagerAdapter.GetPanel<T>();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 返回主界面 - 新功能
|
||
/// </summary>
|
||
public void ReturnToHome()
|
||
{
|
||
UIManagerAdapter.ReturnToHome();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 返回上一级 - 新功能
|
||
/// </summary>
|
||
public bool GoBack()
|
||
{
|
||
return UIManagerAdapter.GoBack();
|
||
}
|
||
} |