refactor: 将淡入淡出迁移到 ScreenTransitionPanel
- 将 BaseYarnCommand、FixSystemNew 各状态、GameManager、 SaveSystem、PlayToolPanel 中的 PlayToolPanel 遮罩调用 统一迁移到 ScreenTransitionPanel - 从 PlayToolPanel 移除 _fadeImage 及相关 fade 方法 - 从 Play Tool Panel Prefab 移除 Fade Image 子对象
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -47,28 +47,28 @@ namespace AibisDream
|
||||
[YarnCommand("fade_in")]
|
||||
public static IEnumerator FadeIn(float duration = 1)
|
||||
{
|
||||
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
return panel.FadeInAsync(duration);
|
||||
}
|
||||
|
||||
[YarnCommand("fade_out")]
|
||||
public static IEnumerator FadeOut(float duration = 1)
|
||||
{
|
||||
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
return panel.FadeOutAsync(duration);
|
||||
}
|
||||
|
||||
|
||||
[YarnCommand("fade_in_sync")]
|
||||
public static void FadeInSync(float duration = 1)
|
||||
{
|
||||
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
panel.FadeInSync(duration);
|
||||
}
|
||||
|
||||
[YarnCommand("fade_out_sync")]
|
||||
public static void FadeOutSync(float duration = 1)
|
||||
{
|
||||
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
panel.FadeOutSync(duration);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace AibisDream.FixSystem
|
||||
{
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModuleCenter);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.5f);
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
yield return FixPanelSystem.Instance.StartAllSystems();
|
||||
|
||||
@@ -35,20 +35,20 @@ namespace AibisDream.FixSystem
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmoDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
public IEnumerator Exit(FixTransition transition)
|
||||
{
|
||||
// 无
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.1f);
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
cuttingManager.ClearCutLine();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.1f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,20 +80,20 @@ namespace AibisDream.FixSystem
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemoryDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
|
||||
public IEnumerator Exit(FixTransition transition)
|
||||
{
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.1f);
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
cuttingManager.ClearCutLine();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.1f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,19 +124,19 @@ namespace AibisDream.FixSystem
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogicDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
public IEnumerator Exit(FixTransition transition)
|
||||
{
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.1f);
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
cuttingManager.ClearCutLine();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
expressionManager.OpenView();
|
||||
// 切换到深度表达相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.ExpressionDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.5f);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("火山表达模块/火山表达深入");
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace AibisDream.FixSystem
|
||||
{
|
||||
var expressionManager = FixSystemCenter.SystemDic.Get<ExpressionManager>();
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
|
||||
// 重置身体模块
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
@@ -47,7 +47,7 @@ namespace AibisDream.FixSystem
|
||||
// 关闭表达系统视图
|
||||
expressionManager.CloseView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().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<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
//emoManager.OpenView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EmoDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit(FixTransition transition)
|
||||
@@ -102,14 +102,14 @@ namespace AibisDream.FixSystem
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
|
||||
// 切换到分析模式相机
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.AnalysisMode);
|
||||
// 进入分析模式
|
||||
if (analysisModeManager != null)
|
||||
{
|
||||
analysisModeManager.OnEnter();
|
||||
}
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit(FixTransition transition)
|
||||
@@ -117,7 +117,7 @@ namespace AibisDream.FixSystem
|
||||
float duration = 0.5f;
|
||||
var analysisModeManager = FixSystemCenter.SystemDic.Get<MiniGame.Language.AnalysisModeManager>();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(duration);
|
||||
|
||||
// 退出分析模式
|
||||
if (analysisModeManager != null)
|
||||
@@ -125,7 +125,7 @@ namespace AibisDream.FixSystem
|
||||
analysisModeManager.OnExit();
|
||||
}
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(duration);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,13 +150,13 @@ namespace AibisDream.FixSystem
|
||||
if (salesManager != null)
|
||||
{
|
||||
// FadeIn
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
|
||||
// 打开销售系统视图,传入systemView参数
|
||||
salesManager.OpenView();
|
||||
|
||||
// FadeOut
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().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<AibisDream.MiniGame.Language.SalesManager>();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(duration);
|
||||
|
||||
// 关闭销售系统视图
|
||||
if (salesManager != null)
|
||||
@@ -185,7 +185,7 @@ namespace AibisDream.FixSystem
|
||||
salesManager.CloseView();
|
||||
}
|
||||
// 关闭前先播放钳子放下盖子,完成后再结
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(duration);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("钳子/放下盖子");
|
||||
yield return null;
|
||||
}
|
||||
|
||||
@@ -25,12 +25,12 @@ namespace AibisDream.FixSystem
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
ufSystem.OpenUFView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep);
|
||||
eyeSystem.OnEnter();
|
||||
BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Eye);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit(FixTransition transition)
|
||||
@@ -38,11 +38,11 @@ namespace AibisDream.FixSystem
|
||||
float duration = 0.5f;
|
||||
var ufSystem = FixSystemCenter.SystemDic.Get<UFSystem>();
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(duration);
|
||||
eyeSystem.OnExit();
|
||||
ufSystem.CloseUFView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(duration);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,11 +69,11 @@ namespace AibisDream.FixSystem
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep);
|
||||
eyeSystem.OnEnter();
|
||||
BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Eye);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator EnterImmediate(FixTransition transition)
|
||||
@@ -89,11 +89,11 @@ namespace AibisDream.FixSystem
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
float duration = 0.5f;
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(duration);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye);
|
||||
eyeSystem.OnExit();
|
||||
yield return new WaitForSeconds(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(duration);
|
||||
//关上
|
||||
var eyeModule = bodyModuleSystem.FindBodyModuleByType<EyeModule>();
|
||||
yield return eyeModule.CloseEye();
|
||||
@@ -120,9 +120,9 @@ namespace AibisDream.FixSystem
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 相机聚焦到目标位
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Memory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(duration);
|
||||
memorySystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(duration);
|
||||
BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Memory);
|
||||
}
|
||||
|
||||
@@ -141,10 +141,10 @@ namespace AibisDream.FixSystem
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var memorySystem = FixSystemCenter.SystemDic.Get<MemoryProcess>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync(duration);
|
||||
memorySystem.OnExit();
|
||||
memorySystem.CloseMemoryView();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeOutAsync(duration);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
memorySystem.PullMemoryProjector();
|
||||
}
|
||||
|
||||
@@ -46,9 +46,9 @@ namespace AibisDream
|
||||
/// </summary>
|
||||
private IEnumerator AppBootstrapCoroutine()
|
||||
{
|
||||
var playTool = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
UIManager.Instance.ShowPanel<PlayToolPanel>();
|
||||
playTool?.ApplyFadeScreenCovered(true);
|
||||
var transitionPanel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
UIManager.Instance.ShowPanel<ScreenTransitionPanel>();
|
||||
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<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().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<PlayToolPanel>();
|
||||
var transitionPanel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
UIManager.Instance.ShowPanel<PlayToolPanel>();
|
||||
if (playTool != null)
|
||||
UIManager.Instance.ShowPanel<ScreenTransitionPanel>();
|
||||
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<PlayToolPanel>().FadeInAsync();
|
||||
yield return UIManager.Instance.GetPanel<ScreenTransitionPanel>().FadeInAsync();
|
||||
yield return SceneLoader.Instance.LoadSceneAsync(_currentTalkSceneSo.Value.firstSceneName);
|
||||
yield return WaitForSceneDialogueReady();
|
||||
DialogController.Instance.StartDialog(_currentTalkSceneSo.Value.yarnProject);
|
||||
|
||||
@@ -318,7 +318,7 @@ namespace AibisDream.SaveSystem
|
||||
private static IEnumerator FadeInForRestore()
|
||||
{
|
||||
AddRestoreLog("Begin restore fade in");
|
||||
var panel = UIManager.Instance?.GetPanel<PlayToolPanel>();
|
||||
var panel = UIManager.Instance?.GetPanel<ScreenTransitionPanel>();
|
||||
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<PlayToolPanel>();
|
||||
var panel = UIManager.Instance?.GetPanel<ScreenTransitionPanel>();
|
||||
if (panel != null)
|
||||
{
|
||||
yield return panel.FadeOutAsync(RestoreFadeDuration, useUnscaledTime: true);
|
||||
|
||||
@@ -174,7 +174,7 @@ namespace AibisDream.SaveSystem
|
||||
public float saturationWeight;
|
||||
|
||||
/// <summary>
|
||||
/// <see cref="PlayToolPanel"/> 演出遮罩终态:<c>true</c> = 黑屏盖住(<c>FadeIn</c> 完成);
|
||||
/// <see cref="ScreenTransitionPanel"/> 全局遮罩终态:<c>true</c> = 画面被完全盖住;
|
||||
/// <c>false</c> = 画面可见(<c>FadeOut</c> 完成或遮罩未启用)。不记录转场中间 alpha。
|
||||
/// </summary>
|
||||
public bool isFadeScreenCovered;
|
||||
|
||||
@@ -4,8 +4,8 @@ using UnityEngine;
|
||||
namespace AibisDream.SaveSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// screen section 的捕获/还原实现:屏幕后处理饱和度 + PlayToolPanel 遮罩终态(黑屏盖住 / 画面可见)。
|
||||
/// screen section:饱和度 + PlayToolPanel 遮罩终态(<see cref="PlayToolPanel.CaptureFadeScreenCovered"/>)。
|
||||
/// screen section 的捕获/还原实现:屏幕后处理饱和度 + ScreenTransitionPanel 遮罩终态。
|
||||
/// screen section:饱和度 + 全局遮罩终态(<see cref="ScreenTransitionPanel.CaptureScreenCovered"/>)。
|
||||
/// 供 <see cref="ScreenSnapshotProvider"/> 委托,避免 Provider 直接依赖 UI 细节。
|
||||
/// </summary>
|
||||
public static class ScreenSnapshotHelper
|
||||
@@ -24,10 +24,10 @@ namespace AibisDream.SaveSystem
|
||||
|
||||
if (UIManager.Instance != null)
|
||||
{
|
||||
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
if (panel != null)
|
||||
{
|
||||
dto.isFadeScreenCovered = panel.CaptureFadeScreenCovered();
|
||||
dto.isFadeScreenCovered = panel.CaptureScreenCovered();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,8 +52,8 @@ namespace AibisDream.SaveSystem
|
||||
return;
|
||||
}
|
||||
|
||||
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
||||
panel?.ApplyFadeScreenCovered(dto.isFadeScreenCovered);
|
||||
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
panel?.ApplyScreenCovered(dto.isFadeScreenCovered);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ namespace AibisDream.SaveSystem
|
||||
}
|
||||
|
||||
_hasDeferredFadeScreenCovered = false;
|
||||
var panel = UIManager.Instance?.GetPanel<PlayToolPanel>();
|
||||
panel?.ApplyFadeScreenCovered(_deferredFadeScreenCovered);
|
||||
var panel = UIManager.Instance?.GetPanel<ScreenTransitionPanel>();
|
||||
panel?.ApplyScreenCovered(_deferredFadeScreenCovered);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ using UnityEngine.UI;
|
||||
namespace AibisDream.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// 主要用来放置淡入淡出,图片展示等演出工具
|
||||
/// 主要用来放置图片展示、窗口和时间流转等演出工具
|
||||
/// </summary>
|
||||
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<Image>();
|
||||
_showObjPanel = transform.Find("Show Obj").gameObject;
|
||||
_showObjImage = _showObjPanel.transform.Find("Obj").GetComponent<Image>();
|
||||
_fullScreenImage = transform.Find("Full Screen Image").GetComponent<Image>();
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 捕获遮罩终态:黑屏盖住(FadeIn 完成) vs 画面可见(FadeOut 完成 / HideAll)。
|
||||
/// 与 <see cref="FadeKit"/> 一致——终态以 <c>gameObject.activeSelf</c> 为准(FadeOut 结束会 SetActive(false))。
|
||||
/// </summary>
|
||||
public bool CaptureFadeScreenCovered()
|
||||
{
|
||||
if (_fadeImage == null) return false;
|
||||
return _fadeImage.gameObject.activeSelf;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按快照终态还原遮罩(同步设置 active 与颜色,与 <see cref="FadeKit"/> 终态一致)。
|
||||
/// </summary>
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示物体
|
||||
/// </summary>
|
||||
@@ -240,7 +188,7 @@ namespace AibisDream.UI
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清理演出层内容,但不影响黑屏遮罩(用于返回主界面时在遮罩下重置状态)。
|
||||
/// 清理演出层内容,但不影响全局转场面板(用于返回主界面时在遮罩下重置状态)。
|
||||
/// </summary>
|
||||
public void ClearPresentationEffects()
|
||||
{
|
||||
@@ -258,8 +206,13 @@ namespace AibisDream.UI
|
||||
{
|
||||
var version = ++_timeFlowsVersion;
|
||||
|
||||
var transitionPanel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
||||
|
||||
// 黑屏淡入
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user