using UnityEngine; public class Chest : MonoBehaviour { [SerializeField] private Animator animator; [SerializeField] private TreasureSO _treasureSO; private Transform _treasureObject; private bool _isOpen = false; private void Awake() { _treasureObject = transform.GetChild(1); var spriteRenderer = _treasureObject.GetComponent(); spriteRenderer.sprite = _treasureSO.Image; } private void OnTriggerEnter2D(Collider2D collider) { var playerState = collider.GetComponent(); if (playerState != null && !_isOpen) { _isOpen = true; animator.SetTrigger("OpenChest"); switch (_treasureSO.Treasure) { case TreasureType.Coin: playerState.AddCoin(); if (GameManager.Instance != null) { GameManager.Instance.AddTreasure(1); } break; case TreasureType.Key: playerState.SetKey(); if (GameManager.Instance != null) { GameManager.Instance.SetKeyState(true); } if (LevelManager.Instance != null) { LevelManager.Instance.NotifyKeyCollected(); } break; } } } }