Unity_Utils/Core/Timer.cs
2021-07-31 22:30:58 -04:00

50 lines
1.2 KiB
C#

using UnityEngine;
using UnityEngine.Events;
namespace Core
{
public class Timer : MonoBehaviour
{
public UnityAction onTimeOver;
public bool IsRunning { get; private set; }
public float CurrentTime { get; private set; }
[SerializeField] private float _startingTime = 600;
[SerializeField] private bool _isCountDown;
private void Start()
{
CurrentTime = _startingTime;
}
private void Update()
{
if (IsRunning)
{
if (_isCountDown)
{
if (CurrentTime > 0)
{
CurrentTime -= Time.deltaTime;
}
else
{
CurrentTime = 0;
IsRunning = false;
onTimeOver?.Invoke();
}
}
else
{
CurrentTime += Time.deltaTime;
}
}
}
public void StartTimer() => IsRunning = true;
public void StopTimer() => IsRunning = false;
}
}