Petition-to-the-Gods-V3/Assets/Scripts/Client/ClientWorkMessageHandleSceneController.cs
2025-11-18 14:54:11 +08:00

96 lines
2.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
using UnityEngine.SceneManagement;
using System.Collections;
using System.Net.Sockets;
public class ClientWorkMessageHandleSceneController : MonoBehaviour
{
public static ClientWorkMessageHandleSceneController Instance;
public static int messageResultCount = 0;
public static string messageResult = "";
public static string messageResultText = "";
[Header("影片播放")]
public VideoPlayer videoPlayer;
public RawImage videoDisplay;
public static void cleanData()
{
messageResult = "";
messageResultText = "";
}
private void Awake()
{
Instance = this;
}
void Start()
{
SetupVideoPlayer();
// 開始播放影片
if (videoPlayer != null)
{
videoPlayer.Play();
Debug.Log("開始播放影片");
}
}
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;
videoPlayer.isLooping = true;
videoDisplay.texture = rt;
}
}
}
void OnVideoFinished(VideoPlayer vp)
{
//Debug.Log("影片播放完成,準備跳轉到 ClientWorkScene");
//StartCoroutine(LoadNextScene());
}
public void onReceiveResult(string result, string resultText)
{
//messageResultCount++;
messageResult = result;
messageResultText = resultText;
videoPlayer.Stop();
StartCoroutine(LoadNextScene());
}
public IEnumerator LoadNextScene()
{
yield return new WaitForSeconds(0f);
switch (messageResult)
{
case "yes":
SceneManager.LoadScene("ClientWorkMessageResultYesScene");
break;
case "no":
SceneManager.LoadScene("ClientWorkMessageResultNoScene");
break;
default:
SceneManager.LoadScene("ClientWorkMessageResultNotSureScene");
break;
}
}
}