2022-03-31 18:40:19 +08:00

98 lines
3.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using DG.Tweening;
using UnityEngine.SceneManagement;
using UnityEngine.EventSystems;
namespace Assets.Scripts.Scenes.VideoRide
{
public class VideoLoading : MonoBehaviour
{
Button download { get; set; }
UnityWebRequest request { get; set; }
VideoGameManager manager { get; set; }
// Start is called before the first frame update
void Start()
{
manager = FindObjectOfType<VideoGameManager>();
var button = transform.Find("Panel/Button").GetComponent<Button>();
var Start = transform.Find("Panel/Start").GetComponent<Button>();
var Back = transform.Find("Panel/Back").GetComponent<Button>();
var Inspect = transform.Find("Panel/Inspect").gameObject;
UIManager.AddEvent(Inspect, UnityEngine.EventSystems.EventTriggerType.PointerClick, InspectHandler);
var canvasGroup = transform.GetComponent<CanvasGroup>();
var ui = manager.GetCanvasTransform();
var route = manager.GetMapRoute();
var text = transform.GetComponentInChildren<Text>();
var fileName = route.FileName;// "12067924_720p.mp4";
var url = route.Url; //@"http://192.168.0.97:6031/12067924_720p.mp4";
var currentPath = "";
var path = PFConstants.VideoFolder;
var filepath = path + "/" + fileName;
if (File.Exists(filepath))
{
button.gameObject.SetActive(false);
Start.gameObject.SetActive(true);
manager.SetMedia(filepath);
}
else
{
//检查本地文件是否存在 如果存在直接设置mediaPlayer 否则显示下载按钮
button.onClick.AddListener(() =>
{
StartCoroutine(Utils.DownloadVideo(fileName, url
, (p, req) =>
{
text.text = Math.Round(p * 100, 2).ToString() + "%";
request = req;
}
, (p) =>
{
text.text = "100%";
currentPath = p;
Start.gameObject.SetActive(true);
manager.SetMedia(p);
}
));
});
}
var g = gameObject;
Start.onClick.AddListener(() =>
{
canvasGroup.DOFade(0, 1).onComplete+=()=> {
g.SetActive(false);
manager.SetCurrentMode(VideoGameManager.ARMode.RIDE);
ui.Find("Panel").gameObject.SetActive(true);
};
});
Back.onClick.AddListener(() =>
{
SceneManager.LoadScene("MainScene");
});
}
//进入观察模式
private void InspectHandler(BaseEventData data)
{
manager.SetCurrentMode(VideoGameManager.ARMode.INSPECT);
var canvasGroup = transform.GetComponent<CanvasGroup>();
var ui = manager.GetCanvasTransform();
canvasGroup.DOFade(0, 1).onComplete += () => {
gameObject.SetActive(false);
ui.Find("Panel").gameObject.SetActive(true);
};
}
// Update is called once per frame
void Update()
{
}
}
}