sega ec0920350d Обновить интерфейс настройки призов и исправить их добавление
Использовать полную иконку персонажа и крестик для пустого приза.
Добавить звук переключения, указатели выбора и анимацию добавленных призов за 0,3 секунды.
Скрывать экран настроек на время работы с конфигуратором призов.
Восстановить ссылку на префаб добавленного приза и оформить контекстные окна по макетам.
Устранить повторное подтверждение QR-приза и исправить направление вертикальной навигации витрины.

Проверено в Unity в режиме игры: ввод и сохранение значений, добавление и удаление пяти типов призов, анимация выбора и защита от повторного добавления. Ошибок в консоли нет.
2026-09-18 13:24:45 +03:00

46 lines
1.1 KiB
C#

using PrizeSystem;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
public class QrPrizeConfigurator : BasePrizeConfigurator
{
[SerializeField, FormerlySerializedAs("icon")] private Image _icon;
[SerializeField, FormerlySerializedAs("textInput")] private TextInput _textInput;
protected override void Awake()
{
base.Awake();
_textInput.OnComplete += OnTextCompleted;
}
protected override void OnDestroy()
{
_textInput.OnComplete -= OnTextCompleted;
base.OnDestroy();
}
public override void Configure(PrizeType prizeType)
{
_icon.sprite = PrizeSystemManager.GetPrizeIcon(prizeType);
_textInput.SetDestroyOnComplete(false);
_textInput.Initialize(12, Alphabets.RUS_AND_DIGITS);
}
public override void Confirm()
{
OnTextCompleted(_textInput.CollectText());
}
public override void UpdateControls()
{
_textInput.UpdateControls();
}
private void OnTextCompleted(string text)
{
if (!string.IsNullOrWhiteSpace(text))
Complete(PrizeUtils.CreatePrize(text));
}
}