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); var list = FindObjectsOfType(); foreach (var item in list) { item.SetPlayer(100, 10); } manager.StartGame(); }); UIManager.AddEvent(stop, UnityEngine.EventSystems.EventTriggerType.PointerClick, (s) => { sb.AppendLine($"{manager.GetCurrentFrame()}:{0}"); Debug.Log(sb.ToString()); videoPlayer.SetPower(0); }); 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}"); }); } // Update is called once per frame void Update() { if (videoPlayer != null && manager != null) { infoText.text = $"帧数:{manager.GetCurrentFrame()}"; } } } }