74 lines
2.0 KiB
C#
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
|
|
}
|
|
}
|