From 5f4debfd7f55ba478944e2660a212609b23609d7 Mon Sep 17 00:00:00 2001 From: chiyulin0314 Date: Thu, 20 Nov 2025 02:35:47 +0800 Subject: [PATCH] fix Q6 --- .../Scripts/Server/NetworkMessageHandler.cs | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/Server/NetworkMessageHandler.cs b/Assets/Scripts/Server/NetworkMessageHandler.cs index 3c645e9..de09fb4 100644 --- a/Assets/Scripts/Server/NetworkMessageHandler.cs +++ b/Assets/Scripts/Server/NetworkMessageHandler.cs @@ -67,27 +67,24 @@ public class NetworkMessageHandler : MonoBehaviour ServerWorkMessagePanel.workPresent = msgObj.present; ServerWorkMessagePanel.workMessageCount = msgObj.count; - // 1. 鎖定檢查:影片是否正在播放 (Step 5) - if (ServerWorkMessageReplyWait1Panel.Instance != null) + //Debug.LogWarning($"[CY] workMessageCount: {ServerWorkMessagePanel.workMessageCount}"); + if (ServerWorkMessagePanel.workMessageCount != 0) { - // 鎖定中:通知 Panel 等待影片播完 (Step 5) - Debug.Log("NetworkMessageHandler: 偵測到 Step 5 影片正在播放,使用鎖定機制!"); - ServerWorkMessageReplyWait1Panel.Instance.ReceiveNewWorkMessage(); - // ❗ 這裡不執行 processStep(2) - } - // ⭐ 修正點: 2. 非鎖定狀態:立即切換到 Message Panel (Step 2) - else - { - // 當 Step 6 面板存在時,優先讓它自行處理切換邏輯 - if (ServerWorkMessageReplyWait1WorkingPanel.Instance != null) + //是否忙碌中(播影片時為忙碌中) + bool isBusy = false; + if (ServerWorkMessageReplyWait1Panel.Instance !=null && ServerWorkMessageReplyWait1Panel.Instance.isActiveAndEnabled) { - ServerWorkMessageReplyWait1WorkingPanel.Instance.StopWaitingAndGoToMessagePanel(); + isBusy = true; + ServerWorkMessageReplyWait1Panel.Instance.ReceiveNewWorkMessage(); + }else if (ServerWorkMessageReplyWait2Panel.Instance != null && ServerWorkMessageReplyWait2Panel.Instance.isActiveAndEnabled) + { + isBusy = true; } - else if (ServerWorkSceneController.Instance != null) + + //非忙碌中就直接跳轉 + if (isBusy == false) { - // 備用機制:如果 Step 6 面板不存在,直接讓場景控制器切換 - Debug.Log("NetworkMessageHandler: 收到新願望訊號,直接切換到 Step 2。"); - ServerWorkSceneController.Instance.processStep(2); + ServerWorkSceneController.Instance?.processStep(2); } }