using RR.Common.Managers; using RR.Game2D.Behaviour; using RR.Game2D.Behaviour.ScriptableObjects; using RR.Game2D.Core.Managers; using UnityEngine; public class PlayerAnimationEvents : MonoBehaviour { private SFXAsset _stepSounds; private SFXAsset _hurtSounds; private SFXAsset _jumpSounds; private Rigidbody2D _rb; private void Awake() { PlayerController controller = GetComponent(); _stepSounds = controller.stepSounds; _hurtSounds = controller.hurtSounds; _jumpSounds = controller.jumpSounds; _rb = GetComponent(); } public void OnDeathBegin() { if (_hurtSounds && _hurtSounds.soundEffects.Length > 0) GameManager.Instance.Audio.PlayRandomSfxAt(_hurtSounds.soundEffects, transform.position); } public void OnDeathEnd() { Animator animator = GetComponent(); animator.ResetTrigger("Death"); gameObject.layer = LayerMask.NameToLayer("Default"); _rb.constraints = RigidbodyConstraints2D.FreezeRotation; GameManager.Instance.RespawnPlayer(); } public void Step() { if (_stepSounds && _stepSounds.soundEffects.Length > 0) GameManager.Instance.Audio.PlayRandomSfxAt(_stepSounds.soundEffects, transform.position); } public void Jump() { if (_jumpSounds && _jumpSounds.soundEffects.Length > 0) GameManager.Instance.Audio.PlayRandomSfxAt(_jumpSounds.soundEffects, transform.position); } }