feat: 添加 BubbleSlotKit 与 VirtualCamRegistry 集中管理气泡槽位和虚拟相机

This commit is contained in:
2026-06-22 19:02:52 +08:00
parent 0368374a98
commit 07850fcf1c
21 changed files with 209 additions and 249 deletions
@@ -3,9 +3,8 @@ using UnityEngine;
using DG.Tweening;
using Yarn.Unity;
using AibisDream.Framework;
using Cinemachine;
using UnityEngine.Rendering;
using AibisDream.Kit;
using UnityEngine.Rendering;
using UnityEngine.ResourceManagement.AsyncOperations;
namespace AibisDream.FixSystem
@@ -18,8 +17,6 @@ namespace AibisDream.FixSystem
private const float SearchStartDelay = 1f;
private const float ProjectorMoveDuration = 2f;
[SerializeField] private BubbleSlotGroup bubbleSlotGroup;
public BubbleSlotGroup BubbleSlotGroup => bubbleSlotGroup;
[SerializeField] private GameObject memoryView;
[SerializeField] private GameObject projector;
[SerializeField] private SpriteRenderer memoryFinishedSpriteRenderer; // 用于显示记忆处理结束的表现
@@ -35,7 +32,6 @@ namespace AibisDream.FixSystem
[SerializeField] private CanvasGroup playBackground;
[SerializeField] private GameObject memoryGroup;
[SerializeField] private CinemachineVirtualCamera memoryCamera;
private bool isProcessing = false; // 新增变量来追踪是否正在处理记忆
private bool isPlayingFaderSound = false; // 追踪音效是否正在播放
@@ -140,8 +136,6 @@ namespace AibisDream.FixSystem
FixSystemCenter.SystemDic.Register(this);
if (memoryGroup != null)
memoryGroup.SetActive(false);
if (memoryCamera != null)
CameraKit.Instance.RegisterCamera(CameraEnum.Memory, memoryCamera);
}
@@ -215,7 +209,7 @@ namespace AibisDream.FixSystem
/// <summary>
/// 单条记忆播放结束后的复位:不调用 <see cref="MemorySlider.Init"/>(避免再次锁条并触发打开 Timeline),
/// 仅禁用拖动;完整 <see cref="MemorySlider.LockSlider"/> 仅在退出 <see cref="MemoryState"/> 时 <see cref="OnExit"/> 执行。
/// 仅禁用拖动;完整 <see cref="MemorySlider.LockSlider"/> 仅在退出 <see cref="MemoryCue"/> 时 <see cref="OnExit"/> 执行。
/// </summary>
private void ResetAfterMemoryFinished()
{