DCS/ruiyiweiUX/Assets/Scripts/Base/UIManagerAdapter.cs

127 lines
3.2 KiB
C#
Raw Normal View History

2026-06-09 13:59:11 +08:00
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();
}
}