using UnityEngine; [RequireComponent(typeof(SpriteRenderer), typeof(BoxCollider2D), typeof(AudioSource))] public class Card : MonoBehaviour { private SpriteRenderer _spriteRenderer; private Sprite _backSprite; private Sprite _frontSprite; private Animation _animation; private bool _isBackSide = true; private BoxCollider2D _boxCollider2d; // НОВОЕ: Компонент для проигрывания звука private AudioSource _audioSource; public int Index {get; private set; } private CardCollector _cardCollector; private void Awake() { _spriteRenderer = GetComponent(); _animation = GetComponent(); _boxCollider2d = GetComponent(); // НОВОЕ: Получаем ссылку на AudioSource _audioSource = GetComponent(); } private void OnMouseDown() { if (_cardCollector.TwoCardsClosed()) { _boxCollider2d.enabled = false; // НОВОЕ: Проигрываем звук при нажатии _audioSource.Play(); 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; // На случай, если в префабе забыли, убедимся, что он выключен в начале: // if (_audioSource != null) _audioSource.Stop(); } public void SetCardCollector(CardCollector cardCollector) { _cardCollector = cardCollector; } }