96 lines
2.4 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
|
|
} |