103 lines
4.4 KiB
C#
103 lines
4.4 KiB
C#
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<PFUIPanel>());
|
|
manager = FindObjectOfType<VideoGameManager>();
|
|
videoPlayer = FindObjectOfType<VideoPlayer>();
|
|
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<Text>();
|
|
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<Text>();
|
|
cadance = transform.Find("Panel/PowerPanel/Cadance").GetComponent<Text>();
|
|
heartRate = transform.Find("Panel/PowerPanel/Hrv").GetComponent<Text>();
|
|
speed = transform.Find("Panel/ComputerPanel/Speed").GetComponent<Text>();
|
|
totalDistance = transform.Find("Panel/ComputerPanel/Distance").GetComponent<Text>();
|
|
totalClimbed = transform.Find("Panel/ComputerPanel/TotalClimb").GetComponent<Text>();
|
|
ridingTime = transform.Find("Panel/ComputerPanel/Timer").GetComponent<Text>();
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |