using System.Collections; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using UnityEngine.Video; public class ServerWorkMessageReplyWait1Panel : MonoBehaviour { public static ServerWorkMessageReplyWait1Panel Instance; [Header("影片播放")] public VideoPlayer videoPlayer; public RawImage videoDisplay; // ⭐【新增旗標】:追蹤是否收到「切換到 Step 2 (新願望)」的指令 private bool shouldGoToStep2 = false; private void Awake() { Instance = this; } void Start() { SetupVideoPlayer(); // 重設旗標,確保每次播放都是從初始狀態開始 shouldGoToStep2 = false; } public void play() { if (videoPlayer != null) { videoPlayer.Play(); Debug.Log("ServerWorkMessageReplyWait1Panel: 開始播放影片 (Step 5)。"); } } public void stop() { if (videoPlayer != null) { videoPlayer.Stop(); } } void SetupVideoPlayer() { if (videoPlayer != null) { // 設置影片結束事件 videoPlayer.loopPointReached += OnVideoFinished; // 設置影片顯示 (略) if (videoDisplay != null) { videoPlayer.targetTexture = null; videoPlayer.renderMode = VideoRenderMode.RenderTexture; RenderTexture rt = new RenderTexture(1920, 1080, 24); videoPlayer.targetTexture = rt; videoDisplay.texture = rt; } } } // 影片播放結束時呼叫 void OnVideoFinished(VideoPlayer vp) { Debug.Log("ServerWorkMessageReplyWait1Panel: 影片播放完成。"); // ⭐【核心邏輯修正】:檢查是否有暫存的「新願望」指令 if (shouldGoToStep2) { // ✅ 修正點:如果收到新願望,切換到 Step 2 (MessagePanel) Debug.Log("ServerWorkMessageReplyWait1Panel: 收到新願望訊號,切換到 Step 2 (MessagePanel)。"); if (ServerWorkSceneController.Instance != null) { ServerWorkSceneController.Instance.processStep(2); // **切換到 Step 2** } } else { // 正常流程:沒有新願望訊號,切換到 Step 6 (Wait1WorkingPanel) Debug.Log("ServerWorkMessageReplyWait1Panel: 無新願望訊號,切換到 Step 6 (Wait1WorkingPanel)。"); if (ServerWorkSceneController.Instance != null) { ServerWorkSceneController.Instance.processStep(6); } } } // 供 NetworkMessageHandler 呼叫,設定「鎖定」旗標 public void ReceiveNewWorkMessage() { Debug.Log("ServerWorkMessageReplyWait1Panel: 收到來自客戶端的新願望訊號,設定鎖定旗標。"); shouldGoToStep2 = true; } }