using RR.Common.Managers; using RR.Game2D.Core.Managers; using UnityEngine; using UnityEngine.UI; namespace RR.Common.UI { /// /// УСТАРЕВШИЙ контроллер QR-кодов. /// Логика отображения QR-кодов полностью перенесена в WinBannerController: /// QR-коды генерируются в PrizeSystemManager и показываются ТОЛЬКО при победе (GameWonEvent). /// Удалите этот компонент со сцены и используйте WinBannerController. /// [System.Obsolete("Используйте WinBannerController — QR-коды показываются только при победе через PrizeSystemManager.")] public class QRCodeUIController : MonoBehaviour { [SerializeField] private Transform content; private PrizeSystemManager _prizeSystemManager; private GameObject[] _qrCodes; private void Start() { Debug.LogWarning("[QRCodeUIController] Этот компонент устарел. " + "Удалите его со сцены — QR-коды управляются через WinBannerController."); _prizeSystemManager = PrizeSystemManager.Instance; GameManager.Instance.GameWonEvent += AddQRCodes; } private void OnDestroy() { if (GameManager.Instance != null) GameManager.Instance.GameWonEvent -= AddQRCodes; } private void AddQRCodes(float _) { if (_qrCodes != null) ClearQRCodes(); Texture2D[] qrCodesImages = _prizeSystemManager.GetQRCodes(RR.Common.Prizes.QRTier.None); _qrCodes = new GameObject[qrCodesImages.Length]; for (int i = 0; i < qrCodesImages.Length; i++) { _qrCodes[i] = new GameObject("QRCode_" + i, typeof(RectTransform), typeof(Image)); _qrCodes[i].transform.SetParent(content, false); Sprite sprite = Sprite.Create(qrCodesImages[i], new Rect(0, 0, qrCodesImages[i].width, qrCodesImages[i].height), new Vector2(0.5f, 0.5f)); _qrCodes[i].GetComponent().sprite = sprite; } } private void ClearQRCodes() { if (_qrCodes == null) return; foreach (GameObject qrCode in _qrCodes) { Destroy(qrCode); } _qrCodes = null; } } }