diff --git a/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs b/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs index 16bee8210..0dce64c3e 100644 --- a/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs +++ b/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs @@ -109,7 +109,7 @@ public class MemoryProcess : MonoBehaviour { FixSystemCenter.SystemDic.Register(this); var virtualCam = transform.Find("Memory Camera").GetComponent(); - CameraKit.Instance.RegisterCamera(FixState.Memory, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.Memory, virtualCam); } diff --git a/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs b/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs index 80a6ca83e..2f76b5d1c 100644 --- a/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs +++ b/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs @@ -67,12 +67,12 @@ namespace AibisDream.FixSystem // 注册Camera var virtualCam = transform.GetComponentInChildren(); - CameraKit.Instance.RegisterCamera(FixState.BodyModule, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.BodyModule, virtualCam); } private void OnDestroy() { - CameraKit.Instance.UnRegisterCamera(FixState.BodyModule); + CameraKit.Instance.UnRegisterCamera(CameraEnum.BodyModule); } /// diff --git a/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs b/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs index b3527cc60..85fb64cd9 100644 --- a/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs +++ b/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs @@ -36,7 +36,7 @@ namespace AibisDream // 注册Camera var virtualCam = transform.Find("Clinic Camera").GetComponent(); - CameraKit.Instance.RegisterCamera(FixState.Clinic, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.Clinic, virtualCam); } private void LoadData(ClinicData data) @@ -98,7 +98,7 @@ namespace AibisDream _clinicData.LoadEvent -= LoadData; GameLoopManager.FixDataContainer.Unregister(); FixSystemCenter.SystemDic.Unregister(); - CameraKit.Instance.UnRegisterCamera(FixState.Clinic); + CameraKit.Instance.UnRegisterCamera(CameraEnum.Clinic); } private void OnCharacterChange(CharacterData characterData) diff --git a/Assets/Scripts/FixSystemNew/CoolingMachine/CoolingSystem.cs b/Assets/Scripts/FixSystemNew/CoolingMachine/CoolingSystem.cs index 3a5b22d30..93e917798 100644 --- a/Assets/Scripts/FixSystemNew/CoolingMachine/CoolingSystem.cs +++ b/Assets/Scripts/FixSystemNew/CoolingMachine/CoolingSystem.cs @@ -31,7 +31,7 @@ namespace AibisDream.Framework // 注册相机 var virtualCam = transform.Find("Cooling Camera").GetComponent(); - CameraKit.Instance.RegisterCamera(FixState.CoolingMachine, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.CoolingMachine, virtualCam); } private void InitRefs() @@ -45,7 +45,7 @@ namespace AibisDream.Framework private void OnDestroy() { - CameraKit.Instance.UnRegisterCamera(FixState.CoolingMachine); + CameraKit.Instance.UnRegisterCamera(CameraEnum.CoolingMachine); } #region 对外开放 diff --git a/Assets/Scripts/FixSystemNew/FixStateMachine.cs b/Assets/Scripts/FixSystemNew/FixStateMachine.cs index e73b8b9c0..b6bce361b 100644 --- a/Assets/Scripts/FixSystemNew/FixStateMachine.cs +++ b/Assets/Scripts/FixSystemNew/FixStateMachine.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections; +using System.Collections; using AibisDream.Framework; using UnityEngine; @@ -8,16 +7,16 @@ namespace AibisDream.FixSystem public class FixStateMachine { public FixState CurState => _curState.GetState; - + private IState _curState; private string _curArgs; public IEnumerator SwitchState(FixState nextState, string args = "") { _curArgs = args; - + yield return _curState?.Exit(); - + GameLoopManager.Instance?.UpdateFixState(nextState, _curArgs); _curState = CreateState(nextState, _curArgs); yield return _curState.Enter(); @@ -45,12 +44,12 @@ namespace AibisDream.FixSystem FixState.Gear => new GearState(), _ => new ClinicState() }; - + res.SetArgs(args); return res; } } - + public enum FixState { Default, @@ -84,7 +83,7 @@ namespace AibisDream.FixSystem public IEnumerator Enter() { // 切换相机 - yield return CameraKit.Instance.SwitchCamera(FixState.Clinic); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.Clinic); } public IEnumerator Exit() @@ -97,7 +96,7 @@ namespace AibisDream.FixSystem public struct BodyModuleState : IState { public FixState GetState => FixState.BodyModule; - + public void SetArgs(string args) { // 无 @@ -109,7 +108,7 @@ namespace AibisDream.FixSystem // 拔出插头 bodyModuleSystem.ResetPlug(); // 切换相机 - yield return CameraKit.Instance.SwitchCamera(FixState.BodyModule); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); } public IEnumerator Exit() @@ -124,9 +123,9 @@ namespace AibisDream.FixSystem public struct GearState : IState { public FixState GetState => FixState.Gear; - + private string _configKey; - + public void SetArgs(string args) { _configKey = args; @@ -135,14 +134,15 @@ namespace AibisDream.FixSystem public IEnumerator Enter() { // 先切BodyModule - if (!CameraKit.Instance.EqualToCameraState(FixState.BodyModule)) + if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule)) { yield return MainUIController.Instance?.FadeInSync(0.5f); - yield return CameraKit.Instance.SwitchCamera(FixState.BodyModule); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); yield return MainUIController.Instance?.FadeOutSync(0.5f); } + // 切换相机 - yield return CameraKit.Instance.SwitchCamera(FixState.Gear); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.Gear); // 加载关卡数据 if (!string.IsNullOrEmpty(_configKey)) { @@ -161,7 +161,7 @@ namespace AibisDream.FixSystem public struct EngineState : IState { public FixState GetState => FixState.Engine; - + public void SetArgs(string args) { // 无 @@ -170,14 +170,15 @@ namespace AibisDream.FixSystem public IEnumerator Enter() { // 先切BodyModule - if (!CameraKit.Instance.EqualToCameraState(FixState.BodyModule)) + if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule)) { //yield return MainUIController.Instance?.FadeInSync(0.5f); - yield return CameraKit.Instance.SwitchCamera(FixState.BodyModule); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); //yield return MainUIController.Instance?.FadeOutSync(0.5f); } + // 切换相机 - yield return CameraKit.Instance.SwitchCamera(FixState.Engine); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.Engine); } public IEnumerator Exit() @@ -191,7 +192,7 @@ namespace AibisDream.FixSystem public struct CoolingMachineState : IState { private bool _playLink; - + public FixState GetState => FixState.CoolingMachine; public void SetArgs(string args) @@ -203,8 +204,8 @@ namespace AibisDream.FixSystem { var coolingSystem = FixSystemCenter.SystemDic.Get(); // 切相机 - yield return CameraKit.Instance.SwitchCamera(FixState.CoolingMachine); - + yield return CameraKit.Instance.SwitchCamera(CameraEnum.CoolingMachine); + // 打开泵机 coolingSystem.gameObject.SetActive(true); yield return coolingSystem.OpenCoolingSystem(); @@ -228,34 +229,31 @@ namespace AibisDream.FixSystem public struct UfState : IState { public FixState GetState => FixState.UF; - + public void SetArgs(string args) { - } public IEnumerator Enter() - { + { float duration = 0.5f; var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); var UFSystem = FixSystemCenter.SystemDic.Get(); // 先切BodyModule - if (!CameraKit.Instance.EqualToCameraState(FixState.BodyModule)) + if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule)) { yield return MainUIController.Instance?.FadeInSync(0.5f); - yield return CameraKit.Instance.SwitchCamera(FixState.BodyModule); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); yield return MainUIController.Instance?.FadeOutSync(0.5f); } - + // 插头回到初始插孔 bodyModuleSystem.ResetPlug(); // 切换相机 - yield return CameraKit.Instance.SwitchCamera(FixState.UF); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.UF); yield return MainUIController.Instance.FadeInSync(duration); UFSystem.OpenUFView(); yield return MainUIController.Instance.FadeOutSync(duration); - - } public IEnumerator Exit() @@ -269,36 +267,35 @@ namespace AibisDream.FixSystem public struct EyeState : IState { public FixState GetState => FixState.Eye; - + public void SetArgs(string args) { - } - + public IEnumerator Enter() - { + { float duration = 0.5f; var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); var eyeSystem = FixSystemCenter.SystemDic.Get(); // 先切BodyModule - if (!CameraKit.Instance.EqualToCameraState(FixState.BodyModule)) + if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule)) { yield return MainUIController.Instance?.FadeInSync(0.5f); - yield return CameraKit.Instance.SwitchCamera(FixState.BodyModule); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); yield return MainUIController.Instance?.FadeOutSync(0.5f); } + //打开盖子 - bodyModuleSystem.FindBodyModuleByName("Eye").transform.Find("Module Pic").GetComponent().sprite=Resources.Load("Art/Fix/Peipei/视觉盖子打开"); + bodyModuleSystem.FindBodyModuleByName("Eye").transform.Find("Module Pic").GetComponent() + .sprite = Resources.Load("Art/Fix/Peipei/视觉盖子打开"); // 插头回到初始插孔 bodyModuleSystem.ResetPlug(); // 切换相机 - yield return CameraKit.Instance.SwitchCamera(FixState.Eye); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.Eye); yield return MainUIController.Instance.FadeInSync(duration); eyeSystem.OnEnter(); yield return MainUIController.Instance.FadeOutSync(duration); - - } public IEnumerator Exit() @@ -312,10 +309,9 @@ namespace AibisDream.FixSystem public struct MemoryState : IState { public FixState GetState => FixState.Memory; - + public void SetArgs(string args) { - } public IEnumerator Enter() @@ -323,18 +319,19 @@ namespace AibisDream.FixSystem float duration = 0.5f; var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); var memorySystem = FixSystemCenter.SystemDic.Get(); - // 先切BodyModule - if (!CameraKit.Instance.EqualToCameraState(FixState.BodyModule)) + // 先切BodyModule + if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule)) { yield return MainUIController.Instance?.FadeInSync(0.5f); - yield return CameraKit.Instance.SwitchCamera(FixState.BodyModule); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule); yield return MainUIController.Instance?.FadeOutSync(0.5f); } + yield return memorySystem.DropMemoryProjector(); - // 插头回到初始插孔 + // 插头回到初始插孔 bodyModuleSystem.ResetPlug(); // 相机聚焦到目标位 - yield return CameraKit.Instance.SwitchCamera(FixState.Memory); + yield return CameraKit.Instance.SwitchCamera(CameraEnum.Memory); yield return MainUIController.Instance.FadeInSync(duration); memorySystem.OnEnter(); yield return MainUIController.Instance.FadeOutSync(duration); diff --git a/Assets/Scripts/Framework/OtherKit/CameraKit.cs b/Assets/Scripts/Framework/OtherKit/CameraKit.cs index c0123ec14..1fee39dc4 100644 --- a/Assets/Scripts/Framework/OtherKit/CameraKit.cs +++ b/Assets/Scripts/Framework/OtherKit/CameraKit.cs @@ -1,7 +1,6 @@ using System; using System.Collections; using System.Collections.Generic; -using AibisDream.FixSystem; using AibisDream.Kit; using Cinemachine; using DG.Tweening; @@ -21,10 +20,10 @@ namespace AibisDream.Framework #region 相机组件 private CinemachineBrain _cameraBrain; - private readonly Dictionary _virtualCameraDict = new(); - private readonly Dictionary _camInitStateDict = new(); + private readonly Dictionary _virtualCameraDict = new(); + private readonly Dictionary _camInitStateDict = new(); - private FixState _curFixState; + private CameraEnum _curCameraEnum; private CamState _curInitState; public Camera uiCamera; @@ -43,7 +42,7 @@ namespace AibisDream.Framework public override void OnSingletonInit() { _cameraBrain = Camera.main?.GetComponent(); - _curFixState = FixState.Default; + _curCameraEnum = CameraEnum.Default; // 获取UICamera if (Camera.main && Camera.main.TryGetComponent(out var cameraData)) @@ -77,7 +76,7 @@ namespace AibisDream.Framework } } - public void RegisterCamera(FixState camType, ICinemachineCamera virtualCamera) + public void RegisterCamera(CameraEnum camType, ICinemachineCamera virtualCamera) { _virtualCameraDict[camType] = virtualCamera; @@ -90,7 +89,7 @@ namespace AibisDream.Framework _camInitStateDict[camType] = initState; } - public void UnRegisterCamera(FixState camType, ICinemachineCamera virtualCamera) + public void UnRegisterCamera(CameraEnum camType, ICinemachineCamera virtualCamera) { if (!_virtualCameraDict.TryGetValue(camType, out var curCam)) return; @@ -101,7 +100,7 @@ namespace AibisDream.Framework } } - public void UnRegisterCamera(FixState camType) + public void UnRegisterCamera(CameraEnum camType) { _virtualCameraDict.Remove(camType); _camInitStateDict.Remove(camType); @@ -120,18 +119,18 @@ namespace AibisDream.Framework /// /// /// 是就不用切相机 - public bool EqualToCameraState(FixState targetCameraState) + public bool EqualToCameraState(CameraEnum targetCameraState) { - return _curFixState == targetCameraState; + return _curCameraEnum == targetCameraState; } /// /// 切换相机 /// /// - public IEnumerator SwitchCamera(FixState camType) + public IEnumerator SwitchCamera(CameraEnum camType) { - if (_curFixState == camType) + if (_curCameraEnum == camType) { yield break; } @@ -249,7 +248,7 @@ namespace AibisDream.Framework public static IEnumerator SwitchCamera(string targetStateStr) { // 字符串转枚举 - if (!Enum.TryParse(targetStateStr, out var targetState)) + if (!Enum.TryParse(targetStateStr, out var targetState)) { Debug.Log($"{targetStateStr}不在FixState枚举中"); yield break; @@ -258,4 +257,17 @@ namespace AibisDream.Framework yield return CameraKit.Instance.SwitchCamera(targetState); } } + + public enum CameraEnum + { + Default, + Clinic, + CoolingMachine, + BodyModule, + Memory, + Eye, + UF, + Engine, + Gear + } } \ No newline at end of file diff --git a/Assets/Scripts/MiniGame/Engine/EngineSystem.cs b/Assets/Scripts/MiniGame/Engine/EngineSystem.cs index cf1b60aaf..6ae28ea7e 100644 --- a/Assets/Scripts/MiniGame/Engine/EngineSystem.cs +++ b/Assets/Scripts/MiniGame/Engine/EngineSystem.cs @@ -39,7 +39,7 @@ namespace AibisDream // 注册相机 var virtualCam = transform.Find("Engine Camera").GetComponentInChildren(); - CameraKit.Instance.RegisterCamera(FixState.Engine, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.Engine, virtualCam); } private void Start() @@ -59,7 +59,7 @@ namespace AibisDream private void OnDestroy() { - CameraKit.Instance.UnRegisterCamera(FixState.Engine); + CameraKit.Instance.UnRegisterCamera(CameraEnum.Engine); } private void Update() diff --git a/Assets/Scripts/MiniGame/Gear/GearSystem.cs b/Assets/Scripts/MiniGame/Gear/GearSystem.cs index 10890bc12..0cee1ca9a 100644 --- a/Assets/Scripts/MiniGame/Gear/GearSystem.cs +++ b/Assets/Scripts/MiniGame/Gear/GearSystem.cs @@ -56,7 +56,7 @@ namespace AibisDream // 注册相机 var virtualCam = transform.Find("Gear Camera").GetComponent(); - CameraKit.Instance.RegisterCamera(FixState.Gear, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.Gear, virtualCam); } private void Start() @@ -71,7 +71,7 @@ namespace AibisDream private void OnDestroy() { - CameraKit.Instance.UnRegisterCamera(FixState.Gear); + CameraKit.Instance.UnRegisterCamera(CameraEnum.Gear); } #endregion diff --git a/Assets/Scripts/MiniGame/Peipei/Eye/EyeSystem.cs b/Assets/Scripts/MiniGame/Peipei/Eye/EyeSystem.cs index 8b1fc6a5e..eb4c972e7 100644 --- a/Assets/Scripts/MiniGame/Peipei/Eye/EyeSystem.cs +++ b/Assets/Scripts/MiniGame/Peipei/Eye/EyeSystem.cs @@ -35,7 +35,7 @@ public class EyeSystem : MonoBehaviour { FixSystemCenter.SystemDic.Register(this); var virtualCam = transform.Find("Eye Camera").GetComponent(); - CameraKit.Instance.RegisterCamera(FixState.Eye, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.Eye, virtualCam); GameLoopManager.FixDataContainer.Register(_eyeData); // 添加加载逻辑 _eyeData.LoadEvent += LoadData; diff --git a/Assets/Scripts/MiniGame/Peipei/UF/UFSystem.cs b/Assets/Scripts/MiniGame/Peipei/UF/UFSystem.cs index 2171475a3..6366d63d4 100644 --- a/Assets/Scripts/MiniGame/Peipei/UF/UFSystem.cs +++ b/Assets/Scripts/MiniGame/Peipei/UF/UFSystem.cs @@ -17,7 +17,7 @@ public class UFSystem : MonoBehaviour { FixSystemCenter.SystemDic.Register(this); var virtualCam = transform.Find("UF Camera").GetComponent(); - CameraKit.Instance.RegisterCamera(FixState.UF, virtualCam); + CameraKit.Instance.RegisterCamera(CameraEnum.UF, virtualCam); } public void OpenUFView()