diff --git a/Assets/Scripts/FixSystemNew/Screen System/Core/FixPanelSystem.cs b/Assets/Scripts/FixSystemNew/Screen System/Core/FixPanelSystem.cs index 9e1244d58..39e4c7ad5 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/Core/FixPanelSystem.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/Core/FixPanelSystem.cs @@ -1,6 +1,4 @@ -using System.Collections; -using System.Collections.Generic; -using AibisDream.Framework; +using AibisDream.Framework; using AibisDream.Kit; using UnityEngine; @@ -14,36 +12,41 @@ namespace AibisDream.FixSystem { private void OnEnable() { + RegisterPanels(); RegisterScreenView(); } private void OnDisable() { + _panelContainer.Clear(); UnRegisterScreenView(); } #region 维修面板 - private static IOCContainer _repairPanelContainer = new(); - - public static void RegisterRepairPanel(T panel) - { - _repairPanelContainer.Register(panel); - } + private static IOCContainer _panelContainer = new(); public static T GetRepairPanel() where T : class { - return _repairPanelContainer.Get(); + return _panelContainer.Get(); } - public static void UnregisterRepairPanel() where T : class + public void RegisterPanels() { - _repairPanelContainer.Unregister(); + var panels = GetComponentsInChildren(true); + foreach (var panel in panels) + { + _panelContainer.RegisterByInstance(panel); + } } #endregion - #region 常驻面板 + #region 屏幕相关操作 + + [Header("默认气泡")] + [SerializeField] private BubbleSlotGroup bubbleSlotGroup; + public BubbleSlotGroup BubbleSlotGroup => bubbleSlotGroup; [Header("任务面板")] [SerializeField] private TaskPanel taskPanel; diff --git a/Assets/Scripts/FixSystemNew/Screen System/FixPanel/BlockPuzzlePart.cs b/Assets/Scripts/FixSystemNew/Screen System/FixPanel/BlockPuzzlePart.cs index 61300e52c..54034cbd3 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/FixPanel/BlockPuzzlePart.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/FixPanel/BlockPuzzlePart.cs @@ -1,4 +1,4 @@ -using UnityEngine; +using UnityEngine; using AibisDream.UI; using UnityEngine.UI; using System; @@ -6,7 +6,7 @@ using UnityEngine.Events; namespace AibisDream.FixSystem { - public class BlockPuzzlePart : MonoBehaviour, IOperatorPanel + public class BlockPuzzlePanel : MonoBehaviour, IOperatorPanel { public UnityEvent OnSubmit => lockButton.onClick; public UnityEvent OnPopUp => popUpButton.onClick; diff --git a/Assets/Scripts/FixSystemNew/Screen System/FixPanel/ScreenPanel.cs b/Assets/Scripts/FixSystemNew/Screen System/FixPanel/ScreenPanel.cs index ac3a25c77..ae223ecbd 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/FixPanel/ScreenPanel.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/FixPanel/ScreenPanel.cs @@ -1,5 +1,6 @@ using UnityEngine; using AibisDream.UI; +using AibisDream.Framework; using System.Globalization; using TMPro; @@ -10,6 +11,16 @@ namespace AibisDream.FixSystem [SerializeField] private TMP_Text title; [SerializeField] private TerminalText logText; + private void OnEnable() + { + EnumEventSystem.Global.Register(EventEnum.PlugOut, ClearScreen); + } + + private void OnDisable() + { + EnumEventSystem.Global.UnRegister(EventEnum.PlugOut, ClearScreen); + } + // ---------------------- 对话框功能 ---------------------- public void RunLine(LineSyncToken token) { diff --git a/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs b/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs index e4e1315c7..0359332ff 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs @@ -1,9 +1,8 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Globalization; using System.Linq; using AibisDream.Framework; using AibisDream.Utility; -using DG.Tweening; using Febucci.UI; using Febucci.UI.Core; using TMPro; @@ -86,11 +85,6 @@ namespace AibisDream.FixSystem ShowTitle(string.Empty); } - public void ShowTaskPanel() - { - TaskScreen.transform.DOLocalMoveX(-7.12f, 1f); - } - #endregion public void RunLine(LineSyncToken token) diff --git a/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs b/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs index 376fda78a..8cea0f24f 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs @@ -6,33 +6,35 @@ namespace AibisDream { public static class ScreenYarnCommand { - private static ScreenSystem ScreenSystem => FixSystemCenter.SystemDic.Get(); - private static FixLightSystem LightSystem => ScreenSystem?.FixLightSystem; + private static FixLightSystem LightSystem => FixPanelSystem.GetRepairPanel().FixLightSystem; + + private static TaskPanel TaskPanel => FixPanelSystem.Instance.TaskPanel; + private static ScreenPanel ScreenPanel => FixPanelSystem.Instance.ScreenPanel; #region Screen相关命令 [YarnCommand("clear_screen")] public static void ClearTextScreen() { - ScreenSystem.ClearTextScreen(); + ScreenPanel.ClearScreen(); } [YarnCommand("complete_task")] public static void CompleteTask(string lineId) { - ScreenSystem.TaskScreen.CompleteTask(lineId); + TaskPanel.CompleteTask(lineId); } [YarnCommand("clear_tasks")] public static void ClearTasks() { - ScreenSystem.TaskScreen.ClearTasks(); + TaskPanel.ClearTasks(); } [YarnCommand("show_task_panel")] public static void ShowTaskPanel() { - ScreenSystem.ShowTaskPanel(); + TaskPanel.ShowPanel(); } #endregion