using System.Collections; using AibisDream.Framework; using UnityEngine; namespace AibisDream.FixSystem { public struct ClinicToBodyModuleCommand : ITransitionCommand { private const float FadeDuration = 1f; private string _configName; public IEnumerator Execute() { var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); var clinicSystem = FixSystemCenter.SystemDic.Get(); // 黑屏 yield return MainUIController.Instance.FadeInSync(FadeDuration); // 加载BodyModuleSystem bodyModuleSystem.CurDataKey = _configName; bodyModuleSystem.Load(); // 隐藏诊所 clinicSystem.gameObject.SetActive(false); // 黑屏淡出 yield return MainUIController.Instance.FadeOutSync(FadeDuration); } public void SetArgs(string arg) { // 添加参数 _configName = arg; } } public struct ClinicToEngineCommand : ITransitionCommand { private const float FadeDuration = 0.5f; // 引擎相机设置 private static readonly Vector3 CameraPos = new(-2.5f, 2.13f, -10); private const float OrthographicSize = 2.5f; private const float Duration = 2f; private string _configName; public IEnumerator Execute() { var bodyModuleSystem = FixSystemCenter.SystemDic.Get(); var clinicSystem = FixSystemCenter.SystemDic.Get(); var engineSystem = FixSystemCenter.SystemDic.Get(); // // 黑屏 yield return MainUIController.Instance.FadeInSync(FadeDuration); // 隐藏诊所 clinicSystem.gameObject.SetActive(false); // 激活插线系统 bodyModuleSystem.gameObject.SetActive(true); // // 黑屏淡出 yield return MainUIController.Instance.FadeOutSync(FadeDuration); // 移动相机 yield return CameraKit.Instance.TransCameraAsync(CameraPos, OrthographicSize, Duration); // 开启引擎玩法 engineSystem.CurDataKey = _configName; engineSystem.Load(); yield return engineSystem.OpenCoverAsync(); } public void SetArgs(string arg) { _configName = arg; } } }