Skip to content

Instantly share code, notes, and snippets.

@sebtoun
Created February 24, 2019 20:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebtoun/74f6e45d3820123d26b6321032a29895 to your computer and use it in GitHub Desktop.
Save sebtoun/74f6e45d3820123d26b6321032a29895 to your computer and use it in GitHub Desktop.
Periodically trigger an event
using System;
public class PeriodicTrigger
{
public event Action TriggerEvent;
private float _period;
private float _remaining;
public PeriodicTrigger( float period )
{
Reset( period );
}
public float Period
{
get { return _period; }
}
public void Reset( float period )
{
_period = period;
_remaining = _period;
}
public bool Update( float dt )
{
if ( _remaining <= 0 )
{
OnTriggerEvent();
_remaining += _period;
return true;
}
_remaining -= dt;
return false;
}
private void OnTriggerEvent()
{
var handler = TriggerEvent;
if ( handler != null ) handler();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment