using AibisDream.Framework; using AibisDream.Kit; using UnityEngine; namespace AibisDream.FixSystem { /// /// 维修面板系统 - 统一管理所有侧边栏面板 /// 包括常驻面板(对话、任务)和随状态切换的游戏面板 /// public class FixPanelSystem : Singleton { private void OnEnable() { RegisterPanels(); RegisterScreenView(); } private void OnDisable() { _panelContainer.Clear(); UnRegisterScreenView(); } #region 维修面板 private static IOCContainer _panelContainer = new(); public static T GetRepairPanel() where T : class { return _panelContainer.Get(); } public void RegisterPanels() { var panels = GetComponentsInChildren(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 } }