using UnityEngine; [RequireComponent(typeof(SpriteRenderer), typeof(BoxCollider2D))] public class Card : MonoBehaviour { private SpriteRenderer _spriteRenderer; private Sprite _backSprite; private Sprite _frontSprite; private Animation _animation; private bool _isBackSide = true; private BoxCollider2D _boxCollider2d; public int Index {get; private set;} private CardCollector _cardCollector; private void Awake() { _spriteRenderer = GetComponent(); _animation = GetComponent(); _boxCollider2d = GetComponent(); } private void OnMouseDown() { if (_cardCollector.TwoCardsClosed()) { _boxCollider2d.enabled = false; // Отключаем коллайдер сразу CardAnimation(); _cardCollector.OpenCard(this); } } public void EnableCollider() { _boxCollider2d.enabled = true; } public void ChangeSpriteCard() { _spriteRenderer.sprite = _isBackSide ? _backSprite : _frontSprite; Debug.Log($"Card {gameObject.name}: Changing to {(_isBackSide ? "Back" : "Front")} sprite. Current _isBackSide: {_isBackSide}"); } public void CardAnimation() { _isBackSide = !_isBackSide; _animation.Play(_isBackSide ? "ToBack" : "ToFront"); } public void CardSettings(Sprite back, Sprite front, int index) { _spriteRenderer.sprite = _backSprite = back; _frontSprite = front; Index = index; } public void SetCardCollector(CardCollector cardCollector) { _cardCollector = cardCollector; } }