AMJV_UNITY/TP3/Assets/Scripts/UIThings/UIManager.cs
2024-12-10 22:32:20 +01:00

54 lines
1.4 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using UnityEngine.UIElements;
using UImage = UnityEngine.UI.Image;
public class UIManager : MonoBehaviour
{
[SerializeField] TextMeshProUGUI timeText;
[SerializeField] TextMeshProUGUI velocityText;
[SerializeField] TextMeshProUGUI lapText;
[SerializeField] UImage boostBar;
[SerializeField] Rigidbody car;
[SerializeField] Boost boost;
[SerializeField] CheckpointCheck checkpointCheck;
bool has_won = false;
float time = 0;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
time += Time.deltaTime;
int minute = (int) time / 60;
int secondes = (int) time % 60;
timeText.text = $"Time : {minute} min {secondes}s";
int velocity = (int) car.linearVelocity.magnitude;
velocityText.text = $"{velocity} m/s";
boostBar.fillAmount = boost.charge;
lapText.text = $"Lap : {checkpointCheck.NumberOfLaps + 1} / {CheckpointCheck.MAX_LAPS}";
if (checkpointCheck.NumberOfLaps == CheckpointCheck.MAX_LAPS && !has_won)
{
Win();
}
}
void Win()
{
has_won = true;
EventBus.WinEvent.Invoke(time);
}
}