Files
aibis-dream/Assets/Scripts/FixSystemNew/Screen System/Core/FixPanelSystem.cs
T
2026-03-03 21:45:21 +08:00

74 lines
2.0 KiB
C#

using AibisDream.Framework;
using AibisDream.Kit;
using UnityEngine;
namespace AibisDream.FixSystem
{
/// <summary>
/// 维修面板系统 - 统一管理所有侧边栏面板
/// 包括常驻面板(对话、任务)和随状态切换的游戏面板
/// </summary>
public class FixPanelSystem : Singleton<FixPanelSystem>
{
private void OnEnable()
{
RegisterPanels();
RegisterScreenView();
}
private void OnDisable()
{
_panelContainer.Clear();
UnRegisterScreenView();
}
#region 维修面板
private static IOCContainer _panelContainer = new();
public static T GetRepairPanel<T>() where T : class
{
return _panelContainer.Get<T>();
}
public void RegisterPanels()
{
var panels = GetComponentsInChildren<IOperatorPanel>(true);
foreach (var panel in panels)
{
_panelContainer.RegisterByInstance(panel);
}
}
#endregion
#region 屏幕相关操作
[Header("默认气泡")]
[SerializeField] private BubbleSlotGroup bubbleSlotGroup;
public BubbleSlotGroup BubbleSlotGroup => bubbleSlotGroup;
[Header("任务面板")]
[SerializeField] private TaskPanel taskPanel;
public TaskPanel TaskPanel => taskPanel;
[Header("屏幕面板")]
[SerializeField] private ScreenPanel screenPanel;
public ScreenPanel ScreenPanel => screenPanel;
private void RegisterScreenView()
{
// DialogUIManager.Instance.RegisterScreenView(DialogViewType.Screen, screenPanel);
// DialogUIManager.Instance.RegisterScreenView(DialogViewType.Task, taskPanel);
}
private void UnRegisterScreenView()
{
// DialogUIManager.Instance.UnRegisterScreenView(DialogViewType.Screen);
// DialogUIManager.Instance.UnRegisterScreenView(DialogViewType.Task);
}
#endregion
}
}