TheStable/Assets/Scripts/TimerBase.cs

61 lines
959 B
C#

using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
using static UnityEditor.EditorApplication;
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
public class TimerBase : UdonSharpBehaviour
{
public float TimerLength = 0.0f;
private float _TimerCounter = 0.0f;
private bool _TimerIsRunning = false;
public void Update()
{
if (_TimerIsRunning)
{
_TimerCounter -= Time.deltaTime;
if (_TimerCounter <= 0.0f)
{
_TimerCounter = TimerLength;
_TimerIsRunning = false;
TimerEvent();
}
}
}
public virtual void TimerEvent()
{
Debug.Log("[TimerBase] This timer won't do anything. Use a subclass instead.");
}
public void StartTimer()
{
_TimerCounter = TimerLength;
_TimerIsRunning = true;
}
public void PauseTimer()
{
_TimerIsRunning = false;
}
public void ResumeTimer()
{
_TimerIsRunning = true;
}
public void StopTimer()
{
PauseTimer();
_TimerCounter = TimerLength;
}
}