Files
aibis-dream/Assets/Scripts/FixSystemNew/StateTransition/ClinicTransition.cs
T
2024-12-16 22:09:56 +08:00

74 lines
2.5 KiB
C#

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<BodyModuleSystem>();
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
// 黑屏
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<BodyModuleSystem>();
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
var engineSystem = FixSystemCenter.SystemDic.Get<EngineSystem>();
// // 黑屏
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;
}
}
}