using UnityEngine;
namespace Projectiles
{
///
/// A simple component for playing hit feedback on dummy targets (moving spheres).
///
[RequireComponent(typeof(Health))]
public class HitReactions : MonoBehaviour
{
// PRIVATE MEMBERS
[Header("Animation")]
[SerializeField]
private Animation _animation;
[SerializeField]
private AnimationClip _hitClip;
[SerializeField]
private AnimationClip _fatalHitClip;
// MONOBEHAVIOUR
protected void OnEnable()
{
var health = GetComponent();
health.HitTaken += OnHitTaken;
}
protected void OnDisable()
{
var health = GetComponent();
health.HitTaken -= OnHitTaken;
}
// PRIVATE MEMBERS
private void OnHitTaken(HitData hitData)
{
if (_animation != null)
{
var clip = hitData.IsFatal == true ? _fatalHitClip : _hitClip;
_animation.Play(clip.name);
}
}
}
}