using System.ComponentModel;
using OmiLAXR.Actors.HeartRate;
using UnityEngine;
namespace OmiLAXR.TrackingBehaviours
{
///
/// Tracking behavior specifically designed to monitor heart rate data at regular intervals.
/// Implements IntervalHandler to support scheduled execution via the IntervalTimer.
///
[AddComponentMenu("OmiLAXR / 3) Tracking Behaviours / Heart Rate Tracking Behaviour")]
[Description("Tracks the heart rate of an actor.")]
public class HeartRateTrackingBehaviour : TrackingBehaviour
{
public readonly TrackingBehaviourEvent OnHeartBeat = new TrackingBehaviourEvent();
private void Start()
{
var provider = GetComponentInParent();
if (provider == null || !provider.enabled)
{
enabled = false;
DebugLog.OmiLAXR.Warning($"Cannot find any in parent pipeline '{Pipeline.name}'. The Heart Rate Tracking Behaviour was disabled.");
return;
}
SetInterval(() =>
{
OnHeartBeat?.Invoke(this, provider.GetHeartRate());
}, 1.0f);
}
}
}