refactor(FixSystemNew): 拆分状态类到 States 目录
This commit is contained in:
@@ -1,10 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.Kit;
|
||||
using AibisDream.UI;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
@@ -88,722 +83,4 @@ namespace AibisDream.FixSystem
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public enum FixState
|
||||
{
|
||||
Default = 0,
|
||||
Clinic = 1,
|
||||
BodyModule = 2,
|
||||
Memory = 3,
|
||||
Eye = 4,
|
||||
UF = 5,
|
||||
Expression = 6,
|
||||
Emo = 9,
|
||||
Op = 10,
|
||||
EmoCut = 11,
|
||||
MemoryCut = 12,
|
||||
LogicCut = 13,
|
||||
Dream = 14,
|
||||
AnalysisMode = 15,
|
||||
Sales = 16,
|
||||
BlockPuzzle = 17
|
||||
}
|
||||
|
||||
public struct DefaultState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Default;
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
CameraKit.Instance.SwitchCamera(CameraEnum.Clinic, true);
|
||||
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
|
||||
var data = clinicSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
yield break;
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct ClinicState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Clinic;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
// 先加载对话气泡,避免 Yarn 对话(如 测试 节点 me: 释放log)在相机切换完成前执行时找不到 Player 槽位
|
||||
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Clinic);
|
||||
var data = clinicSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct BodyModuleState : IFixState
|
||||
{
|
||||
private string _args;
|
||||
|
||||
public FixState GetState => FixState.BodyModule;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 设置参数
|
||||
_args = args;
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var cablePanel = FixPanelSystem.GetRepairPanel<CablePanel>();
|
||||
// 拔出插头
|
||||
// 切换Body或Head
|
||||
if (Enum.TryParse<ModuleState>(_args, out var moduleState))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(moduleState);
|
||||
}
|
||||
|
||||
if (cablePanel != null && !FixPanelSystem.Instance.IsSystemOn)
|
||||
{
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModuleCenter);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
yield return FixPanelSystem.Instance.StartAllSystems();
|
||||
}
|
||||
else
|
||||
{
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 加载气泡
|
||||
var data = FixPanelSystem.Instance.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
|
||||
// 开启交互
|
||||
bodyModuleSystem.EnableSystem();
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
// 拔出插头
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 关闭交互
|
||||
bodyModuleSystem.DisableSystem();
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct UfState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.UF;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var ufSystem = FixSystemCenter.SystemDic.Get<UFSystem>();
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
// 先切BodyModule
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
ufSystem.OpenUFView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep);
|
||||
eyeSystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
var data = eyeSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var ufSystem = FixSystemCenter.SystemDic.Get<UFSystem>();
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
eyeSystem.OnExit();
|
||||
ufSystem.CloseUFView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
}
|
||||
}
|
||||
|
||||
public struct EyeState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Eye;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
// 先切BodyModule
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
//打开盖子
|
||||
var eyeModule = bodyModuleSystem.FindBodyModuleByType<EyeModule>();
|
||||
yield return eyeModule.OpenEye();
|
||||
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep);
|
||||
eyeSystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
|
||||
var data = eyeSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
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 CameraKit.Instance.SwitchCamera(CameraEnum.Eye);
|
||||
eyeSystem.OnExit();
|
||||
yield return new WaitForSeconds(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
//关上
|
||||
var eyeModule = bodyModuleSystem.FindBodyModuleByType<EyeModule>();
|
||||
yield return eyeModule.CloseEye();
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
public struct MemoryState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Memory;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var memorySystem = FixSystemCenter.SystemDic.Get<MemoryProcess>();
|
||||
// 先切BodyModule
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
yield return memorySystem.DropMemoryProjector();
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 相机聚焦到目标位
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Memory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
memorySystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
var data = memorySystem.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var memorySystem = FixSystemCenter.SystemDic.Get<MemoryProcess>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
memorySystem.OnExit();
|
||||
memorySystem.CloseMemoryView();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
memorySystem.PullMemoryProjector();
|
||||
}
|
||||
}
|
||||
|
||||
public struct ExpressionState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Expression;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
// 获取表达系统
|
||||
var expressionManager = FixSystemCenter.SystemDic.Get<ExpressionManager>();
|
||||
|
||||
// 先切 BodyModule(如果需要)
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
bodyModule.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// 开启表达系统视图,并播放火山表达深入
|
||||
// 切换到表达相机
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("透镜/透镜in");
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
expressionManager.OpenView();
|
||||
// 切换到深度表达相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.ExpressionDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("火山表达模块/火山表达深入");
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
var expressionManager = FixSystemCenter.SystemDic.Get<ExpressionManager>();
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
|
||||
// 重置身体模块
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
|
||||
// 关闭表达系统视图
|
||||
expressionManager.CloseView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("透镜/透镜out");
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct EmoState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Emo;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var emoManager = FixSystemCenter.SystemDic.Get<EmoManager>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
bodyModule.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Emo);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
//emoManager.OpenView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EmoDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct OpState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Op;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.Op))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Op);
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct DreamState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Dream;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.DreamCamera))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.DreamCamera);
|
||||
|
||||
var openSystem = FixSystemCenter.SystemDic.Get<OpenSystem>();
|
||||
DialogUIManager.Instance.LoadBubbles(openSystem.bubbleSlotGroup.CollectData());
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct EmoCutState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.EmoCut;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// Cut的气泡统一放在BodyModule下
|
||||
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
||||
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Emo");
|
||||
if (bodyModule != null)
|
||||
{
|
||||
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
||||
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
||||
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
||||
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
||||
new Color(1f, 1f, 1f, 1f);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmoDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().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);
|
||||
}
|
||||
}
|
||||
|
||||
public struct MemoryCutState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.MemoryCut;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// Cut的气泡统一放在BodyModule下
|
||||
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
||||
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Memory");
|
||||
if (bodyModule != null)
|
||||
{
|
||||
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
||||
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
||||
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
||||
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
||||
new Color(1f, 1f, 1f, 1f);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemoryDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().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);
|
||||
}
|
||||
}
|
||||
|
||||
public struct LogicCutState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.LogicCut;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// Cut的气泡统一放在BodyModule下
|
||||
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
||||
|
||||
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Logic");
|
||||
if (bodyModule != null)
|
||||
{
|
||||
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
||||
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
||||
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
||||
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
||||
new Color(1f, 1f, 1f, 1f);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogicDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().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);
|
||||
}
|
||||
}
|
||||
|
||||
public struct AnalysisModeState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.AnalysisMode;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var analysisModeManager = FixSystemCenter.SystemDic.Get<MiniGame.Language.AnalysisModeManager>();
|
||||
|
||||
// 先切 BodyModule(如果需要)
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
|
||||
// 切换到分析模式相机
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.AnalysisMode);
|
||||
// 进入分析模式
|
||||
if (analysisModeManager != null)
|
||||
{
|
||||
analysisModeManager.OnEnter();
|
||||
}
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var analysisModeManager = FixSystemCenter.SystemDic.Get<MiniGame.Language.AnalysisModeManager>();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
|
||||
// 退出分析模式
|
||||
if (analysisModeManager != null)
|
||||
{
|
||||
analysisModeManager.OnExit();
|
||||
}
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SalesState : IFixState
|
||||
{
|
||||
private string _systemView;
|
||||
|
||||
public FixState GetState => FixState.Sales;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
_systemView = args;
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 进入前先播放钳子摘盖子,完成后深入
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("钳子/摘走盖子");
|
||||
|
||||
// 获取销售系统管理器
|
||||
var salesManager = FixSystemCenter.SystemDic.Get<AibisDream.MiniGame.Language.SalesManager>();
|
||||
if (salesManager != null)
|
||||
{
|
||||
// FadeIn
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
|
||||
// 打开销售系统视图,传入systemView参数
|
||||
salesManager.OpenView();
|
||||
|
||||
// FadeOut
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
|
||||
// 销售模块使用自身的气泡槽位;缺失时再回退到 ScreenSystem,避免读到错误的槽位配置
|
||||
if (salesManager.bubbleSlotGroup != null)
|
||||
{
|
||||
var data = salesManager.bubbleSlotGroup.CollectData();
|
||||
Debug.Log("[SalesState] Loaded bubble slots from SalesManager.");
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("[SalesState] SalesManager.bubbleSlotGroup is null, fallback to ScreenSystem bubble slots.");
|
||||
var data = FixPanelSystem.Instance.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var salesManager = FixSystemCenter.SystemDic.Get<AibisDream.MiniGame.Language.SalesManager>();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
|
||||
// 关闭销售系统视图
|
||||
if (salesManager != null)
|
||||
{
|
||||
salesManager.CloseView();
|
||||
}
|
||||
// 关闭前先播放钳子放下盖子,完成后再结
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("钳子/放下盖子");
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
public struct BlockPuzzleState : IFixState
|
||||
{
|
||||
private const string puzzleName = "Game2";
|
||||
private const float blockPuzzleScale = 1.6f;
|
||||
private static BlockPuzzleSystem BlockPuzzleSystem => FixSystemCenter.SystemDic.Get<BlockPuzzleSystem>();
|
||||
private static BodyModuleSystem BodyModuleSystem => FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
|
||||
public FixState GetState => FixState.BlockPuzzle;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
// 基本操作(其实应该早就处理好了)
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
var bubbleData = FixPanelSystem.Instance.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(bubbleData);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync(TimelineAssetRef.EngineModuleEnter);
|
||||
// 视角移动
|
||||
var engineModule = BodyModuleSystem.FindBodyModuleByName("Heart");
|
||||
Tween tween = RepairSystemManager.Instance.ScaleCurrentSystem(blockPuzzleScale, engineModule.transform.position);
|
||||
if (tween != null)
|
||||
{
|
||||
yield return tween.WaitForCompletion();
|
||||
}
|
||||
// 初始化拼图
|
||||
BlockPuzzleSystem.Initialize(puzzleName);
|
||||
// 开启遮罩
|
||||
yield return FixPanelSystem.Instance.MaskFadeIn();
|
||||
RepairSystemManager.Instance.SwitchSystem<BlockPuzzleSystem>();
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return FixPanelSystem.Instance.MaskFadeOut();
|
||||
|
||||
// 播放进场动画
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync(TimelineAssetRef.CablePanelExit);
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync(TimelineAssetRef.BlockPuzzleEnter);
|
||||
// 解锁
|
||||
BlockPuzzleSystem.SetLocked(false);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c41d75ab4cb4d338c0288b83f61c94e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.UI;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public struct BlockPuzzleState : IFixState
|
||||
{
|
||||
private const string puzzleName = "Game2";
|
||||
private const float blockPuzzleScale = 1.6f;
|
||||
private static BlockPuzzleSystem BlockPuzzleSystem => FixSystemCenter.SystemDic.Get<BlockPuzzleSystem>();
|
||||
private static BodyModuleSystem BodyModuleSystem => FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
|
||||
public FixState GetState => FixState.BlockPuzzle;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
// 基本操作(其实应该早就处理好了)
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
var bubbleData = FixPanelSystem.Instance.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(bubbleData);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync(TimelineAssetRef.EngineModuleEnter);
|
||||
// 视角移动
|
||||
var engineModule = BodyModuleSystem.FindBodyModuleByName("Heart");
|
||||
Tween tween = RepairSystemManager.Instance.ScaleCurrentSystem(blockPuzzleScale, engineModule.transform.position);
|
||||
if (tween != null)
|
||||
{
|
||||
yield return tween.WaitForCompletion();
|
||||
}
|
||||
// 初始化拼图
|
||||
BlockPuzzleSystem.Initialize(puzzleName);
|
||||
// 开启遮罩
|
||||
yield return FixPanelSystem.Instance.MaskFadeIn();
|
||||
RepairSystemManager.Instance.SwitchSystem<BlockPuzzleSystem>();
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return FixPanelSystem.Instance.MaskFadeOut();
|
||||
|
||||
// 播放进场动画
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync(TimelineAssetRef.CablePanelExit);
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync(TimelineAssetRef.BlockPuzzleEnter);
|
||||
// 解锁
|
||||
BlockPuzzleSystem.SetLocked(false);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 84691c3d316643b98c99ca16c4560013
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.UI;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public struct DefaultState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Default;
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
CameraKit.Instance.SwitchCamera(CameraEnum.Clinic, true);
|
||||
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
|
||||
var data = clinicSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
yield break;
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct ClinicState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Clinic;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
// 先加载对话气泡,避免 Yarn 对话(如 测试 节点 me: 释放log)在相机切换完成前执行时找不到 Player 槽位
|
||||
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Clinic);
|
||||
var data = clinicSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct BodyModuleState : IFixState
|
||||
{
|
||||
private string _args;
|
||||
|
||||
public FixState GetState => FixState.BodyModule;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 设置参数
|
||||
_args = args;
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var cablePanel = FixPanelSystem.GetRepairPanel<CablePanel>();
|
||||
// 拔出插头
|
||||
// 切换Body或Head
|
||||
if (Enum.TryParse<ModuleState>(_args, out var moduleState))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(moduleState);
|
||||
}
|
||||
|
||||
if (cablePanel != null && !FixPanelSystem.Instance.IsSystemOn)
|
||||
{
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModuleCenter);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
yield return FixPanelSystem.Instance.StartAllSystems();
|
||||
}
|
||||
else
|
||||
{
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 加载气泡
|
||||
var data = FixPanelSystem.Instance.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
|
||||
// 开启交互
|
||||
bodyModuleSystem.EnableSystem();
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
// 拔出插头
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 关闭交互
|
||||
bodyModuleSystem.DisableSystem();
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct OpState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Op;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.Op))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Op);
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct DreamState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Dream;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.DreamCamera))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.DreamCamera);
|
||||
|
||||
var openSystem = FixSystemCenter.SystemDic.Get<OpenSystem>();
|
||||
DialogUIManager.Instance.LoadBubbles(openSystem.bubbleSlotGroup.CollectData());
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e85329d3d1e47c18bec82ccfe25f6ab
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.UI;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public struct EmoCutState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.EmoCut;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// Cut的气泡统一放在BodyModule下
|
||||
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
||||
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Emo");
|
||||
if (bodyModule != null)
|
||||
{
|
||||
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
||||
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
||||
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
||||
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
||||
new Color(1f, 1f, 1f, 1f);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmoDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
// 无
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().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);
|
||||
}
|
||||
}
|
||||
|
||||
public struct MemoryCutState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.MemoryCut;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// Cut的气泡统一放在BodyModule下
|
||||
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
||||
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Memory");
|
||||
if (bodyModule != null)
|
||||
{
|
||||
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
||||
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
||||
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
||||
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
||||
new Color(1f, 1f, 1f, 1f);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemoryDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().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);
|
||||
}
|
||||
}
|
||||
|
||||
public struct LogicCutState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.LogicCut;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// Cut的气泡统一放在BodyModule下
|
||||
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
||||
|
||||
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Logic");
|
||||
if (bodyModule != null)
|
||||
{
|
||||
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
||||
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
||||
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
||||
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
||||
new Color(1f, 1f, 1f, 1f);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogicDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
||||
yield return cuttingManager.StartCutting(bodyModule);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f31682a5a8144cfa8ba7f2d8619feaf2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public enum FixState
|
||||
{
|
||||
Default = 0,
|
||||
Clinic = 1,
|
||||
BodyModule = 2,
|
||||
Memory = 3,
|
||||
Eye = 4,
|
||||
UF = 5,
|
||||
Expression = 6,
|
||||
Emo = 9,
|
||||
Op = 10,
|
||||
EmoCut = 11,
|
||||
MemoryCut = 12,
|
||||
LogicCut = 13,
|
||||
Dream = 14,
|
||||
AnalysisMode = 15,
|
||||
Sales = 16,
|
||||
BlockPuzzle = 17
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9dc0800bbef347d5810d82e445a872cb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -0,0 +1,216 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.UI;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public struct ExpressionState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Expression;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
// 获取表达系统
|
||||
var expressionManager = FixSystemCenter.SystemDic.Get<ExpressionManager>();
|
||||
|
||||
// 先切 BodyModule(如果需要)
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
bodyModule.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
// 开启表达系统视图,并播放火山表达深入
|
||||
// 切换到表达相机
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("透镜/透镜in");
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
expressionManager.OpenView();
|
||||
// 切换到深度表达相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.ExpressionDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("火山表达模块/火山表达深入");
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
var expressionManager = FixSystemCenter.SystemDic.Get<ExpressionManager>();
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
|
||||
// 重置身体模块
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
|
||||
// 关闭表达系统视图
|
||||
expressionManager.CloseView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Expression);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("透镜/透镜out");
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct EmoState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Emo;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var emoManager = FixSystemCenter.SystemDic.Get<EmoManager>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
bodyModule.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Emo);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
//emoManager.OpenView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EmoDeep);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public struct AnalysisModeState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.AnalysisMode;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
// 无
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var analysisModeManager = FixSystemCenter.SystemDic.Get<MiniGame.Language.AnalysisModeManager>();
|
||||
|
||||
// 先切 BodyModule(如果需要)
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
|
||||
// 切换到分析模式相机
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.AnalysisMode);
|
||||
// 进入分析模式
|
||||
if (analysisModeManager != null)
|
||||
{
|
||||
analysisModeManager.OnEnter();
|
||||
}
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var analysisModeManager = FixSystemCenter.SystemDic.Get<MiniGame.Language.AnalysisModeManager>();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
|
||||
// 退出分析模式
|
||||
if (analysisModeManager != null)
|
||||
{
|
||||
analysisModeManager.OnExit();
|
||||
}
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SalesState : IFixState
|
||||
{
|
||||
private string _systemView;
|
||||
|
||||
public FixState GetState => FixState.Sales;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
_systemView = args;
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 进入前先播放钳子摘盖子,完成后深入
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("钳子/摘走盖子");
|
||||
|
||||
// 获取销售系统管理器
|
||||
var salesManager = FixSystemCenter.SystemDic.Get<AibisDream.MiniGame.Language.SalesManager>();
|
||||
if (salesManager != null)
|
||||
{
|
||||
// FadeIn
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
|
||||
// 打开销售系统视图,传入systemView参数
|
||||
salesManager.OpenView();
|
||||
|
||||
// FadeOut
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
|
||||
// 销售模块使用自身的气泡槽位;缺失时再回退到 ScreenSystem,避免读到错误的槽位配置
|
||||
if (salesManager.bubbleSlotGroup != null)
|
||||
{
|
||||
var data = salesManager.bubbleSlotGroup.CollectData();
|
||||
Debug.Log("[SalesState] Loaded bubble slots from SalesManager.");
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("[SalesState] SalesManager.bubbleSlotGroup is null, fallback to ScreenSystem bubble slots.");
|
||||
var data = FixPanelSystem.Instance.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var salesManager = FixSystemCenter.SystemDic.Get<AibisDream.MiniGame.Language.SalesManager>();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
|
||||
// 关闭销售系统视图
|
||||
if (salesManager != null)
|
||||
{
|
||||
salesManager.CloseView();
|
||||
}
|
||||
// 关闭前先播放钳子放下盖子,完成后再结
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return TimelineCenter.Instance.PlayTimelineAsync("钳子/放下盖子");
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98f122636e424c2199a237d2850a03b8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.UI;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public struct UfState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.UF;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var ufSystem = FixSystemCenter.SystemDic.Get<UFSystem>();
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
// 先切BodyModule
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
ufSystem.OpenUFView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep);
|
||||
eyeSystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
var data = eyeSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var ufSystem = FixSystemCenter.SystemDic.Get<UFSystem>();
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
eyeSystem.OnExit();
|
||||
ufSystem.CloseUFView();
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
}
|
||||
}
|
||||
|
||||
public struct EyeState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Eye;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
||||
var eyeSystem = FixSystemCenter.SystemDic.Get<EyeSystem>();
|
||||
// 先切BodyModule
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
//打开盖子
|
||||
var eyeModule = bodyModuleSystem.FindBodyModuleByType<EyeModule>();
|
||||
yield return eyeModule.OpenEye();
|
||||
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 切换相机
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.5f);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.EyeDeep);
|
||||
eyeSystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.5f);
|
||||
|
||||
var data = eyeSystem.bubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
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 CameraKit.Instance.SwitchCamera(CameraEnum.Eye);
|
||||
eyeSystem.OnExit();
|
||||
yield return new WaitForSeconds(0.1f);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
//关上
|
||||
var eyeModule = bodyModuleSystem.FindBodyModuleByType<EyeModule>();
|
||||
yield return eyeModule.CloseEye();
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
public struct MemoryState : IFixState
|
||||
{
|
||||
public FixState GetState => FixState.Memory;
|
||||
|
||||
public void SetArgs(string args)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
||||
var memorySystem = FixSystemCenter.SystemDic.Get<MemoryProcess>();
|
||||
// 先切BodyModule
|
||||
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
}
|
||||
|
||||
yield return memorySystem.DropMemoryProjector();
|
||||
// 插头回到初始插孔
|
||||
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
||||
// 相机聚焦到目标位
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Memory);
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
memorySystem.OnEnter();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
var data = memorySystem.BubbleSlotGroup.CollectData();
|
||||
DialogUIManager.Instance.LoadBubbles(data);
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
float duration = 0.5f;
|
||||
var memorySystem = FixSystemCenter.SystemDic.Get<MemoryProcess>();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(duration);
|
||||
memorySystem.OnExit();
|
||||
memorySystem.CloseMemoryView();
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(duration);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
||||
memorySystem.PullMemoryProjector();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 90a6a39492ca40edbf1d17ab821c5e01
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
Reference in New Issue
Block a user