using UnityEngine; public class MapElement : MonoBehaviour { [SerializeField] private MapElementSO _elementSO; public MapElementSO ElementSO => _elementSO; private float _respawnElementTimer; private int _respawnTimeout = 4; private bool _needRespawn = false; private bool _characterInRange = false; private BoxCollider2D _boxCollider; private SpriteRenderer _spriteRenderer; private void Start() { _boxCollider=GetComponent(); _spriteRenderer= GetComponentInChildren(); } public void Hit() { _boxCollider.isTrigger=true; _spriteRenderer.enabled = false; _respawnElementTimer = _respawnTimeout; _needRespawn = true; } private void Update() { if (_needRespawn) { _respawnElementTimer -= Time.deltaTime; if (_respawnElementTimer <= 0) { _respawnElementTimer = _respawnTimeout; if(_characterInRange) { print("Character is dead"); } _boxCollider.isTrigger = false; _spriteRenderer.enabled = true; _needRespawn = false; } } } private void OnTriggerEnter2D(Collider2D collider) { var character = collider.GetComponent(); if (character) { _characterInRange = true; } } private void OnTriggerExit2D(Collider2D other) { var character = GetComponent().GetComponent(); if (character) { _characterInRange = false; } } }