// Assets/_Project/Scripts/Combat/EnemyDeathSound.cs using TD.Audio; using TD.Gameplay; using UnityEngine; namespace TD.Combat { /// /// Local-only audio for enemy death. Subscribes to /// and plays a randomly chosen clip from . /// Attach to any enemy prefab and assign its clips in the Inspector. /// [RequireComponent(typeof(EnemyHealth))] public class EnemyDeathSound : MonoBehaviour { [SerializeField] private SoundConfig[] deathSounds; private EnemyHealth enemyHealth; private void Awake() { enemyHealth = GetComponent(); } private void OnEnable() { if (enemyHealth != null) enemyHealth.OnDiedClient += HandleDied; } private void OnDisable() { if (enemyHealth != null) enemyHealth.OnDiedClient -= HandleDied; } private void HandleDied() { if (deathSounds == null || deathSounds.Length == 0) return; var sound = deathSounds[Random.Range(0, deathSounds.Length)]; AudioManager.Instance?.Play(sound.clip, AudioCategory.EnemyHitDeath, sound.RandomPitch(), sound.volume); } } }