using Assets.Scenes.Ride.Scripts; using System; using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UI; namespace Assets.Scripts.Scenes.VideoRide { public class VideoUIManager : MonoBehaviour { GameObject button; VideoGameManager manager; VideoPlayer videoPlayer; Text infoText { get; set; } // Start is called before the first frame update void Start() { UIManager.SetModalPanel(transform.Find("ModalPanel").GetComponent()); manager = FindObjectOfType(); videoPlayer = FindObjectOfType(); button = transform.Find("Panel/Button").gameObject; StringBuilder sb = new StringBuilder(); GameObject start = transform.Find("Panel/start").gameObject; GameObject stop = transform.Find("Panel/stop").gameObject; GameObject save = transform.Find("Panel/save").gameObject; GameObject left = transform.Find("Panel/left").gameObject; GameObject right = transform.Find("Panel/right").gameObject; GameObject continueBtn = transform.Find("Panel/continue").gameObject; UIManager.AddEvent(continueBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, async (s) => { await manager.ContinueAsync(); }); infoText = transform.Find("InfoText").GetComponent(); UIManager.AddEvent(button, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { UIManager.Show(UIManager.Instance.DevicePanel, null, true); }); UIManager.AddEvent(start, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { videoPlayer.SetPower(200); manager.StartGame(); }); UIManager.AddEvent(stop, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { sb.AppendLine($"{manager.GetCurrentFrame()}:{0}"); Debug.Log(sb.ToString()); videoPlayer.SetPower(0); manager.Pause();//暂停视频 }); UIManager.AddEvent(save, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { videoPlayer.Complete(); }); UIManager.AddEvent(left, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { sb.AppendLine($"{manager.GetCurrentFrame()}:{-5}"); }); UIManager.AddEvent(right, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { sb.AppendLine($"{manager.GetCurrentFrame()}:{5}"); }); ShowPlayerInfo(); } Text power { get; set; } Text cadance { get; set; } Text heartRate { get; set; } Text speed { get; set; } Text totalDistance { get; set; } Text totalClimbed { get; set; } Text ridingTime { get; set; } private void ShowPlayerInfo() { power = transform.Find("Panel/PowerPanel/Power").GetComponent(); cadance = transform.Find("Panel/PowerPanel/Cadance").GetComponent(); heartRate = transform.Find("Panel/PowerPanel/Hrv").GetComponent(); speed = transform.Find("Panel/ComputerPanel/Speed").GetComponent(); totalDistance = transform.Find("Panel/ComputerPanel/Distance").GetComponent(); totalClimbed = transform.Find("Panel/ComputerPanel/TotalClimb").GetComponent(); ridingTime = transform.Find("Panel/ComputerPanel/Timer").GetComponent(); } // Update is called once per frame void Update() { if (videoPlayer != null && manager != null) { infoText.text = $"帧数:{manager.GetCurrentFrame()}"; power.text = Math.Round(videoPlayer.power).ToString(); speed.text = Math.Round(videoPlayer.speed,2).ToString(); totalDistance.text = Math.Round(videoPlayer.totalDistance,2).ToString(); totalClimbed.text = Math.Round(videoPlayer.totalClimb).ToString(); if (manager.CurrentPlayer != null) { ridingTime.text = Helper.FormatTicks(manager.CurrentPlayer.ticks); } } } } }