using UnityEngine; namespace RR.Common.UI { /// /// Пример использования TextInputModal для различных типов ввода /// public class TextInputModal_Test : MonoBehaviour { [SerializeField] private TextInputModal textInputModal; /// /// Открывает модальное окно для ввода номера телефона /// public void OpenPhoneNumberInput() { if (textInputModal == null) return; // Устанавливаем алфавит для телефонных номеров textInputModal.SetAlphabet(TextInputAlphabets.PhoneNumber); // Устанавливаем количество ячеек (например, 11 для российского номера) textInputModal.SetCellCount(11); // Подписываемся на события textInputModal.OnTextConfirmed += OnPhoneNumberEntered; textInputModal.OnTextCancelled += OnInputCancelled; // Открываем окно textInputModal.OpenForInput("Введите номер телефона", "+7"); } /// /// Открывает модальное окно для ввода имени игрока /// public void OpenPlayerNameInput() { if (textInputModal == null) return; // Устанавливаем алфавит для имени (русские буквы) textInputModal.SetAlphabet(TextInputAlphabets.RussianStandard); // Устанавливаем количество ячеек textInputModal.SetCellCount(15); // Подписываемся на события textInputModal.OnTextConfirmed += OnPlayerNameEntered; textInputModal.OnTextCancelled += OnInputCancelled; // Открываем окно textInputModal.OpenForInput("Введите ваше имя"); } /// /// Открывает модальное окно для ввода кода приза /// public void OpenPrizeCodeInput() { if (textInputModal == null) return; // Устанавливаем алфавит только из цифр textInputModal.SetAlphabet(TextInputAlphabets.Numeric); // Устанавливаем количество ячеек (например, 6 для кода) textInputModal.SetCellCount(6); // Подписываемся на события textInputModal.OnTextConfirmed += OnPrizeCodeEntered; textInputModal.OnTextCancelled += OnInputCancelled; // Открываем окно textInputModal.OpenForInput("Введите код приза"); } /// /// Открывает модальное окно для ввода email /// public void OpenEmailInput() { if (textInputModal == null) return; // Устанавливаем алфавит для email textInputModal.SetAlphabet(TextInputAlphabets.Email); // Устанавливаем количество ячеек textInputModal.SetCellCount(20); // Подписываемся на события textInputModal.OnTextConfirmed += OnEmailEntered; textInputModal.OnTextCancelled += OnInputCancelled; // Открываем окно textInputModal.OpenForInput("Введите email"); } private void OnPhoneNumberEntered(string phoneNumber) { Debug.Log($"Введен номер телефона: {phoneNumber}"); // Отписываемся от событий textInputModal.OnTextConfirmed -= OnPhoneNumberEntered; textInputModal.OnTextCancelled -= OnInputCancelled; // Здесь можно сохранить номер телефона PlayerPrefs.SetString("PlayerPhone", phoneNumber); } private void OnPlayerNameEntered(string playerName) { Debug.Log($"Введено имя игрока: {playerName}"); // Отписываемся от событий textInputModal.OnTextConfirmed -= OnPlayerNameEntered; textInputModal.OnTextCancelled -= OnInputCancelled; // Здесь можно сохранить имя игрока PlayerPrefs.SetString("PlayerName", playerName); } private void OnPrizeCodeEntered(string prizeCode) { Debug.Log($"Введен код приза: {prizeCode}"); // Отписываемся от событий textInputModal.OnTextConfirmed -= OnPrizeCodeEntered; textInputModal.OnTextCancelled -= OnInputCancelled; // Здесь можно проверить код приза // CheckPrizeCode(prizeCode); } private void OnEmailEntered(string email) { Debug.Log($"Введен email: {email}"); // Отписываемся от событий textInputModal.OnTextConfirmed -= OnEmailEntered; textInputModal.OnTextCancelled -= OnInputCancelled; // Здесь можно сохранить email PlayerPrefs.SetString("PlayerEmail", email); } private void OnInputCancelled() { Debug.Log("Ввод отменен"); // Отписываемся от всех событий textInputModal.OnTextConfirmed -= OnPhoneNumberEntered; textInputModal.OnTextConfirmed -= OnPlayerNameEntered; textInputModal.OnTextConfirmed -= OnPrizeCodeEntered; textInputModal.OnTextConfirmed -= OnEmailEntered; textInputModal.OnTextCancelled -= OnInputCancelled; } } }