diff --git a/Assets/Scripts/FixSystemNew/FixStateMachine.cs b/Assets/Scripts/FixSystemNew/FixStateMachine.cs index af54f9d54..361af62ff 100644 --- a/Assets/Scripts/FixSystemNew/FixStateMachine.cs +++ b/Assets/Scripts/FixSystemNew/FixStateMachine.cs @@ -122,12 +122,12 @@ namespace AibisDream.FixSystem public IEnumerator Enter() { - // 切换相机 - yield return CameraKit.Instance.SwitchCamera(CameraEnum.Clinic); - // 注册对话气泡 + // 先加载对话气泡,避免 Yarn 对话(如 测试 节点 me: 释放log)在相机切换完成前执行时找不到 Player 槽位 var clinicSystem = FixSystemCenter.SystemDic.Get(); var data = clinicSystem.bubbleSlotGroup.CollectData(); DialogUIManager.Instance.LoadBubbles(data); + // 切换相机 + yield return CameraKit.Instance.SwitchCamera(CameraEnum.Clinic); } public IEnumerator Exit() @@ -799,9 +799,16 @@ namespace AibisDream.FixSystem // FadeOut yield return UIManager.Instance.GetPanel().FadeOutAsync(0.5f); - // 注册对话气泡(与其他 state 一致) + // 销售模块使用自身的气泡槽位;缺失时再回退到 ScreenSystem,避免读到错误的槽位配置 if (salesManager.bubbleSlotGroup != null) { + var data = salesManager.bubbleSlotGroup.CollectData(); + Debug.Log("[SalesState] Loaded bubble slots from SalesManager."); + DialogUIManager.Instance.LoadBubbles(data); + } + else if (screenSystem.BubbleSlotGroup != null) + { + Debug.LogWarning("[SalesState] SalesManager.bubbleSlotGroup is null, fallback to ScreenSystem bubble slots."); var data = screenSystem.BubbleSlotGroup.CollectData(); DialogUIManager.Instance.LoadBubbles(data); }