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

127 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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