diff --git a/Assets/GameContent/Feature_MainUI/Prefabs/Old/Play Tool Panel.prefab b/Assets/GameContent/Feature_MainUI/Prefabs/Old/Play Tool Panel.prefab index b7703b005..8584806b3 100644 --- a/Assets/GameContent/Feature_MainUI/Prefabs/Old/Play Tool Panel.prefab +++ b/Assets/GameContent/Feature_MainUI/Prefabs/Old/Play Tool Panel.prefab @@ -598,7 +598,6 @@ RectTransform: - {fileID: 2435851631326673332} - {fileID: 3369822658199011853} - {fileID: 1952989201910221321} - - {fileID: 7001172210609801577} - {fileID: 3098988001922718290} - {fileID: 5986227694117348860} - {fileID: 4753076094804246705} @@ -631,81 +630,6 @@ MonoBehaviour: m_EditorClassIdentifier: objWidth: 700 objHeight: 550 ---- !u!1 &7868860406131582412 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7001172210609801577} - - component: {fileID: 5984596302561387657} - - component: {fileID: 756790148796958745} - m_Layer: 5 - m_Name: Fade Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &7001172210609801577 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7868860406131582412} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5358297362873264388} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5984596302561387657 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7868860406131582412} - m_CullTransparentMesh: 1 ---- !u!114 &756790148796958745 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7868860406131582412} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 217208fd7d83b3c4a8e9a8e08baec32c, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!1001 &5111124973336394898 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Dialog System/BaseYarnCommand.cs b/Assets/Scripts/Dialog System/BaseYarnCommand.cs index 521c79348..bd6c29c8f 100644 --- a/Assets/Scripts/Dialog System/BaseYarnCommand.cs +++ b/Assets/Scripts/Dialog System/BaseYarnCommand.cs @@ -47,28 +47,28 @@ namespace AibisDream [YarnCommand("fade_in")] public static IEnumerator FadeIn(float duration = 1) { - var panel = UIManager.Instance.GetPanel(); + var panel = UIManager.Instance.GetPanel(); return panel.FadeInAsync(duration); } [YarnCommand("fade_out")] public static IEnumerator FadeOut(float duration = 1) { - var panel = UIManager.Instance.GetPanel(); + var panel = UIManager.Instance.GetPanel(); return panel.FadeOutAsync(duration); } - + [YarnCommand("fade_in_sync")] public static void FadeInSync(float duration = 1) { - var panel = UIManager.Instance.GetPanel(); + var panel = UIManager.Instance.GetPanel(); panel.FadeInSync(duration); } [YarnCommand("fade_out_sync")] public static void FadeOutSync(float duration = 1) { - var panel = UIManager.Instance.GetPanel(); + var panel = UIManager.Instance.GetPanel(); panel.FadeOutSync(duration); } diff --git a/Assets/Scripts/FixSystemNew/States/CoreFixCues.cs b/Assets/Scripts/FixSystemNew/States/CoreFixCues.cs index 5f506ab97..71db7cc44 100644 --- a/Assets/Scripts/FixSystemNew/States/CoreFixCues.cs +++ b/Assets/Scripts/FixSystemNew/States/CoreFixCues.cs @@ -72,7 +72,7 @@ namespace AibisDream.FixSystem { // 切换相机 yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModuleCenter); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); yield return new WaitForSeconds(0.5f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); yield return FixPanelSystem.Instance.StartAllSystems(); diff --git a/Assets/Scripts/FixSystemNew/States/CutFixCues.cs b/Assets/Scripts/FixSystemNew/States/CutFixCues.cs index aa69181bf..fb5a7953b 100644 --- a/Assets/Scripts/FixSystemNew/States/CutFixCues.cs +++ b/Assets/Scripts/FixSystemNew/States/CutFixCues.cs @@ -35,20 +35,20 @@ namespace AibisDream.FixSystem } yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmoDeep); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); yield return cuttingManager.StartCutting(bodyModule); } public IEnumerator Exit(FixTransition transition) { // 无 - yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); var cuttingManager = FixSystemCenter.SystemDic.Get(); cuttingManager.ClearCutLine(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); } } @@ -80,20 +80,20 @@ namespace AibisDream.FixSystem } yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemoryDeep); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); yield return cuttingManager.StartCutting(bodyModule); } public IEnumerator Exit(FixTransition transition) { - yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); var cuttingManager = FixSystemCenter.SystemDic.Get(); cuttingManager.ClearCutLine(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); } } @@ -124,19 +124,19 @@ namespace AibisDream.FixSystem } yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogicDeep); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); yield return cuttingManager.StartCutting(bodyModule); } public IEnumerator Exit(FixTransition transition) { - yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.1f); var cuttingManager = FixSystemCenter.SystemDic.Get(); cuttingManager.ClearCutLine(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.1f); } } } diff --git a/Assets/Scripts/FixSystemNew/States/HuoShanFixCues.cs b/Assets/Scripts/FixSystemNew/States/HuoShanFixCues.cs index 20c6dd11a..8ebe2186b 100644 --- a/Assets/Scripts/FixSystemNew/States/HuoShanFixCues.cs +++ b/Assets/Scripts/FixSystemNew/States/HuoShanFixCues.cs @@ -27,11 +27,11 @@ namespace AibisDream.FixSystem // 切换到表达相机 yield return TimelineCenter.Instance.PlayTimelineAsync("透镜/透镜in"); yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); expressionManager.OpenView(); // 切换到深度表达相机 yield return CameraKit.Instance.SwitchCamera(CameraEnum.ExpressionDeep); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); yield return TimelineCenter.Instance.PlayTimelineAsync("火山表达模块/火山表达深入"); } @@ -39,7 +39,7 @@ namespace AibisDream.FixSystem { var expressionManager = FixSystemCenter.SystemDic.Get(); var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); // 重置身体模块 FixPanelSystem.GetRepairPanel().ResetPlug(); @@ -47,7 +47,7 @@ namespace AibisDream.FixSystem // 关闭表达系统视图 expressionManager.CloseView(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); yield return TimelineCenter.Instance.PlayTimelineAsync("透镜/透镜out"); yield break; @@ -69,10 +69,10 @@ namespace AibisDream.FixSystem } yield return CameraKit.Instance.SwitchCamera(CameraEnum.Emo); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); //emoManager.OpenView(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.EmoDeep); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); } public IEnumerator Exit(FixTransition transition) @@ -102,14 +102,14 @@ namespace AibisDream.FixSystem FixPanelSystem.GetRepairPanel().ResetPlug(); // 切换到分析模式相机 - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.AnalysisMode); // 进入分析模式 if (analysisModeManager != null) { analysisModeManager.OnEnter(); } - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); } public IEnumerator Exit(FixTransition transition) @@ -117,7 +117,7 @@ namespace AibisDream.FixSystem float duration = 0.5f; var analysisModeManager = FixSystemCenter.SystemDic.Get(); - yield return UIManager.Instance.GetPanel().FadeInAsync(duration); + yield return UIManager.Instance.GetPanel().FadeInAsync(duration); // 退出分析模式 if (analysisModeManager != null) @@ -125,7 +125,7 @@ namespace AibisDream.FixSystem analysisModeManager.OnExit(); } - yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); + yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); } } @@ -150,13 +150,13 @@ namespace AibisDream.FixSystem if (salesManager != null) { // FadeIn - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); // 打开销售系统视图,传入systemView参数 salesManager.OpenView(); // FadeOut - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); // 销售模块使用自身的气泡槽位;缺失时再回退到 ScreenSystem,避免读到错误的槽位配置 if (BubbleSlotKit.Instance.TryGet(BubbleSlotEnum.Sales, out _)) @@ -177,7 +177,7 @@ namespace AibisDream.FixSystem float duration = 0.5f; var salesManager = FixSystemCenter.SystemDic.Get(); - yield return UIManager.Instance.GetPanel().FadeInAsync(duration); + yield return UIManager.Instance.GetPanel().FadeInAsync(duration); // 关闭销售系统视图 if (salesManager != null) @@ -185,7 +185,7 @@ namespace AibisDream.FixSystem salesManager.CloseView(); } // 关闭前先播放钳子放下盖子,完成后再结 - yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); + yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); yield return TimelineCenter.Instance.PlayTimelineAsync("钳子/放下盖子"); yield return null; } diff --git a/Assets/Scripts/FixSystemNew/States/PeipeiFixCues.cs b/Assets/Scripts/FixSystemNew/States/PeipeiFixCues.cs index bd2a04df1..81dd78c2f 100644 --- a/Assets/Scripts/FixSystemNew/States/PeipeiFixCues.cs +++ b/Assets/Scripts/FixSystemNew/States/PeipeiFixCues.cs @@ -25,12 +25,12 @@ namespace AibisDream.FixSystem FixPanelSystem.GetRepairPanel().ResetPlug(); // 切换相机 yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); ufSystem.OpenUFView(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep); eyeSystem.OnEnter(); BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Eye); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); } public IEnumerator Exit(FixTransition transition) @@ -38,11 +38,11 @@ namespace AibisDream.FixSystem float duration = 0.5f; var ufSystem = FixSystemCenter.SystemDic.Get(); var eyeSystem = FixSystemCenter.SystemDic.Get(); - yield return UIManager.Instance.GetPanel().FadeInAsync(duration); + yield return UIManager.Instance.GetPanel().FadeInAsync(duration); eyeSystem.OnExit(); ufSystem.CloseUFView(); yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF); - yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); + yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); } } @@ -69,11 +69,11 @@ namespace AibisDream.FixSystem FixPanelSystem.GetRepairPanel().ResetPlug(); // 切换相机 yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep); eyeSystem.OnEnter(); BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Eye); - yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); } public IEnumerator EnterImmediate(FixTransition transition) @@ -89,11 +89,11 @@ namespace AibisDream.FixSystem var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); float duration = 0.5f; var eyeSystem = FixSystemCenter.SystemDic.Get(); - yield return UIManager.Instance.GetPanel().FadeInAsync(duration); + yield return UIManager.Instance.GetPanel().FadeInAsync(duration); yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye); eyeSystem.OnExit(); yield return new WaitForSeconds(0.1f); - yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); + yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); //关上 var eyeModule = bodyModuleSystem.FindBodyModuleByType(); yield return eyeModule.CloseEye(); @@ -120,9 +120,9 @@ namespace AibisDream.FixSystem FixPanelSystem.GetRepairPanel().ResetPlug(); // 相机聚焦到目标位 yield return CameraKit.Instance.SwitchCamera(CameraEnum.Memory); - yield return UIManager.Instance.GetPanel().FadeInAsync(duration); + yield return UIManager.Instance.GetPanel().FadeInAsync(duration); memorySystem.OnEnter(); - yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); + yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Memory); } @@ -141,10 +141,10 @@ namespace AibisDream.FixSystem { float duration = 0.5f; var memorySystem = FixSystemCenter.SystemDic.Get(); - yield return UIManager.Instance.GetPanel().FadeInAsync(duration); + yield return UIManager.Instance.GetPanel().FadeInAsync(duration); memorySystem.OnExit(); memorySystem.CloseMemoryView(); - yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); + yield return UIManager.Instance.GetPanel().FadeOutAsync(duration); yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); memorySystem.PullMemoryProjector(); } diff --git a/Assets/Scripts/Game Loop/GameManager.cs b/Assets/Scripts/Game Loop/GameManager.cs index 12e898e30..9d7e46b84 100644 --- a/Assets/Scripts/Game Loop/GameManager.cs +++ b/Assets/Scripts/Game Loop/GameManager.cs @@ -46,9 +46,9 @@ namespace AibisDream /// private IEnumerator AppBootstrapCoroutine() { - var playTool = UIManager.Instance.GetPanel(); - UIManager.Instance.ShowPanel(); - playTool?.ApplyFadeScreenCovered(true); + var transitionPanel = UIManager.Instance.GetPanel(); + UIManager.Instance.ShowPanel(); + transitionPanel?.ApplyScreenCovered(true); yield return LocalizationKit.WaitUntilReady(); @@ -56,9 +56,9 @@ namespace AibisDream yield return LocalizationKit.WaitForUIRefresh(); - if (playTool != null) + if (transitionPanel != null) { - yield return playTool.FadeOutAsync(MainMenuFadeDuration); + yield return transitionPanel.FadeOutAsync(MainMenuFadeDuration); } } @@ -129,7 +129,7 @@ namespace AibisDream private IEnumerator LoadFirstScene() { ChapterController.Instance.UnlockChapter(_currentTalkSceneSo.Value); - yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); + yield return UIManager.Instance.GetPanel().FadeInAsync(0.5f); yield return SceneLoader.Instance.LoadSceneAsync(_currentTalkSceneSo.Value.firstSceneName); yield return WaitForSceneDialogueReady(); DialogController.Instance.StartDialog(_currentTalkSceneSo.Value.yarnProject); @@ -224,10 +224,12 @@ namespace AibisDream private IEnumerator RestartCoroutine() { var playTool = UIManager.Instance.GetPanel(); + var transitionPanel = UIManager.Instance.GetPanel(); UIManager.Instance.ShowPanel(); - if (playTool != null) + UIManager.Instance.ShowPanel(); + if (transitionPanel != null) { - yield return playTool.FadeInAsync(MainMenuFadeDuration); + yield return transitionPanel.FadeInAsync(MainMenuFadeDuration); } // 清理所有系统注册 @@ -255,9 +257,9 @@ namespace AibisDream yield return LocalizationKit.WaitForUIRefresh(); - if (playTool != null) + if (transitionPanel != null) { - yield return playTool.FadeOutAsync(MainMenuFadeDuration); + yield return transitionPanel.FadeOutAsync(MainMenuFadeDuration); } } @@ -316,7 +318,7 @@ namespace AibisDream { _currentTalkSceneSo.Value = next; ChapterController.Instance.UnlockChapter(_currentTalkSceneSo.Value); - yield return UIManager.Instance.GetPanel().FadeInAsync(); + yield return UIManager.Instance.GetPanel().FadeInAsync(); yield return SceneLoader.Instance.LoadSceneAsync(_currentTalkSceneSo.Value.firstSceneName); yield return WaitForSceneDialogueReady(); DialogController.Instance.StartDialog(_currentTalkSceneSo.Value.yarnProject); diff --git a/Assets/Scripts/SaveSystem/SaveRestoreOrchestrator.cs b/Assets/Scripts/SaveSystem/SaveRestoreOrchestrator.cs index 1007d0e92..c8e4d9bde 100644 --- a/Assets/Scripts/SaveSystem/SaveRestoreOrchestrator.cs +++ b/Assets/Scripts/SaveSystem/SaveRestoreOrchestrator.cs @@ -318,7 +318,7 @@ namespace AibisDream.SaveSystem private static IEnumerator FadeInForRestore() { AddRestoreLog("Begin restore fade in"); - var panel = UIManager.Instance?.GetPanel(); + var panel = UIManager.Instance?.GetPanel(); if (panel != null) { yield return panel.FadeInAsync(RestoreFadeDuration, useUnscaledTime: true); @@ -328,7 +328,7 @@ namespace AibisDream.SaveSystem private static IEnumerator FadeOutForRestore() { AddRestoreLog("End restore fade out"); - var panel = UIManager.Instance?.GetPanel(); + var panel = UIManager.Instance?.GetPanel(); if (panel != null) { yield return panel.FadeOutAsync(RestoreFadeDuration, useUnscaledTime: true); diff --git a/Assets/Scripts/SaveSystem/SaveSnapshot.cs b/Assets/Scripts/SaveSystem/SaveSnapshot.cs index 7556c2bab..353124f4f 100644 --- a/Assets/Scripts/SaveSystem/SaveSnapshot.cs +++ b/Assets/Scripts/SaveSystem/SaveSnapshot.cs @@ -174,7 +174,7 @@ namespace AibisDream.SaveSystem public float saturationWeight; /// - /// 演出遮罩终态:true = 黑屏盖住(FadeIn 完成); + /// 全局遮罩终态:true = 画面被完全盖住; /// false = 画面可见(FadeOut 完成或遮罩未启用)。不记录转场中间 alpha。 /// public bool isFadeScreenCovered; diff --git a/Assets/Scripts/SaveSystem/ScreenSnapshotHelper.cs b/Assets/Scripts/SaveSystem/ScreenSnapshotHelper.cs index c7d0a073c..bfd6e395b 100644 --- a/Assets/Scripts/SaveSystem/ScreenSnapshotHelper.cs +++ b/Assets/Scripts/SaveSystem/ScreenSnapshotHelper.cs @@ -4,8 +4,8 @@ using UnityEngine; namespace AibisDream.SaveSystem { /// - /// screen section 的捕获/还原实现:屏幕后处理饱和度 + PlayToolPanel 遮罩终态(黑屏盖住 / 画面可见)。 - /// screen section:饱和度 + PlayToolPanel 遮罩终态()。 + /// screen section 的捕获/还原实现:屏幕后处理饱和度 + ScreenTransitionPanel 遮罩终态。 + /// screen section:饱和度 + 全局遮罩终态()。 /// 供 委托,避免 Provider 直接依赖 UI 细节。 /// public static class ScreenSnapshotHelper @@ -24,10 +24,10 @@ namespace AibisDream.SaveSystem if (UIManager.Instance != null) { - var panel = UIManager.Instance.GetPanel(); + var panel = UIManager.Instance.GetPanel(); if (panel != null) { - dto.isFadeScreenCovered = panel.CaptureFadeScreenCovered(); + dto.isFadeScreenCovered = panel.CaptureScreenCovered(); } } @@ -52,8 +52,8 @@ namespace AibisDream.SaveSystem return; } - var panel = UIManager.Instance.GetPanel(); - panel?.ApplyFadeScreenCovered(dto.isFadeScreenCovered); + var panel = UIManager.Instance.GetPanel(); + panel?.ApplyScreenCovered(dto.isFadeScreenCovered); } } @@ -66,8 +66,8 @@ namespace AibisDream.SaveSystem } _hasDeferredFadeScreenCovered = false; - var panel = UIManager.Instance?.GetPanel(); - panel?.ApplyFadeScreenCovered(_deferredFadeScreenCovered); + var panel = UIManager.Instance?.GetPanel(); + panel?.ApplyScreenCovered(_deferredFadeScreenCovered); } } } diff --git a/Assets/Scripts/UI/Panel/PlayToolPanel.cs b/Assets/Scripts/UI/Panel/PlayToolPanel.cs index ae9383823..8bac84fe3 100644 --- a/Assets/Scripts/UI/Panel/PlayToolPanel.cs +++ b/Assets/Scripts/UI/Panel/PlayToolPanel.cs @@ -11,7 +11,7 @@ using UnityEngine.UI; namespace AibisDream.UI { /// - /// 主要用来放置淡入淡出,图片展示等演出工具 + /// 主要用来放置图片展示、窗口和时间流转等演出工具 /// public class PlayToolPanel : MonoBehaviour, IUIPanel { @@ -26,7 +26,6 @@ namespace AibisDream.UI #region 索引 - private Image _fadeImage; private GameObject _showObjPanel; private Image _showObjImage; private Image _fullScreenImage; @@ -46,7 +45,6 @@ namespace AibisDream.UI private void InitRefs() { - _fadeImage = transform.Find("Fade Image").GetComponent(); _showObjPanel = transform.Find("Show Obj").gameObject; _showObjImage = _showObjPanel.transform.Find("Obj").GetComponent(); _fullScreenImage = transform.Find("Full Screen Image").GetComponent(); @@ -65,56 +63,6 @@ namespace AibisDream.UI : picName; } - public IEnumerator FadeInAsync(float duration = 1, bool useUnscaledTime = false) - { - return _fadeImage.FadeInAsync(duration, useUnscaledTime); - } - - public IEnumerator FadeOutAsync(float duration = 1, bool useUnscaledTime = false) - { - return _fadeImage.FadeOutAsync(duration, useUnscaledTime); - } - - public void FadeInSync(float duration = 1) - { - StartCoroutine(FadeInAsync(duration)); - } - - public void FadeOutSync(float duration = 1) - { - StartCoroutine(FadeOutAsync(duration)); - } - - /// - /// 捕获遮罩终态:黑屏盖住(FadeIn 完成) vs 画面可见(FadeOut 完成 / HideAll)。 - /// 与 一致——终态以 gameObject.activeSelf 为准(FadeOut 结束会 SetActive(false))。 - /// - public bool CaptureFadeScreenCovered() - { - if (_fadeImage == null) return false; - return _fadeImage.gameObject.activeSelf; - } - - /// - /// 按快照终态还原遮罩(同步设置 active 与颜色,与 终态一致)。 - /// - public void ApplyFadeScreenCovered(bool isCovered) - { - if (_fadeImage == null) return; - - _fadeImage.DOKill(); - if (isCovered) - { - _fadeImage.gameObject.SetActive(true); - _fadeImage.color = Color.white; - } - else - { - _fadeImage.color = Color.clear; - _fadeImage.gameObject.SetActive(false); - } - } - /// /// 显示物体 /// @@ -240,7 +188,7 @@ namespace AibisDream.UI } /// - /// 清理演出层内容,但不影响黑屏遮罩(用于返回主界面时在遮罩下重置状态)。 + /// 清理演出层内容,但不影响全局转场面板(用于返回主界面时在遮罩下重置状态)。 /// public void ClearPresentationEffects() { @@ -258,8 +206,13 @@ namespace AibisDream.UI { var version = ++_timeFlowsVersion; + var transitionPanel = UIManager.Instance.GetPanel(); + // 黑屏淡入 - yield return _fadeImage.FadeInAsync(0.5f); + if (transitionPanel != null) + { + yield return transitionPanel.FadeInAsync(0.5f); + } if (version != _timeFlowsVersion) yield break; // 时间流转 @@ -267,7 +220,10 @@ namespace AibisDream.UI if (version != _timeFlowsVersion) yield break; // 黑屏淡出 - yield return _fadeImage.FadeOutAsync(0.5f); + if (transitionPanel != null) + { + yield return transitionPanel.FadeOutAsync(0.5f); + } } #region 感觉这个面板应该常驻 @@ -299,4 +255,4 @@ namespace AibisDream.UI yield return new WaitUntil(() => !_warningWindow.gameObject.activeSelf); } } -} \ No newline at end of file +}