using System; using System.Collections; using System.Threading.Tasks; using TMPro; using Unity.Services.Authentication; using UnityEngine; public class AuntMenu : Menu { [SerializeField] private GameObject loadingScreen; [Header("Register")] [SerializeField] private TMP_InputField usernameFieldRegister; [SerializeField] private TMP_InputField nameFieldRegister; [SerializeField] private TMP_InputField ageFieldRegister; [SerializeField] private TMP_InputField paswordFieldRegister; [SerializeField] private TMP_InputField EmailFieldRegister; private string usernameRegister; private string AgeRegister; private string EmailRegister; private string paswordRegister; [SerializeField] private GameObject RegisterObj; [SerializeField] private GameObject InvalidAge; [Header("Login")] [SerializeField] private TMP_InputField usernameFieldLogin; [SerializeField] private TMP_InputField paswordFieldLogin; private string usernameLogin; private string passwordLogin; SaveData saveData; private void OnEnable() { AuthenticationService.Instance.SignedIn += NextToMenu; } private void Start() { StartCoroutine(LoadingScreen()); } IEnumerator LoadingScreen() { loadingScreen.SetActive(true); yield return new WaitForSeconds(2); loadingScreen.SetActive(false); } private void OnDisable() { AuthenticationService.Instance.SignedIn -= NextToMenu; } private bool IsRegisterFieldInvalid() { if (string.IsNullOrEmpty(usernameFieldRegister.text)) { Debug.LogWarning("Username field is empty!"); return true; } if (string.IsNullOrEmpty(paswordFieldRegister.text)) { Debug.LogWarning("Password field is empty!"); return true; } if (string.IsNullOrEmpty(EmailFieldRegister.text)) { Debug.LogWarning("Email field is empty!"); return true; } return false; } public async void Login() { usernameLogin = usernameFieldLogin.text.Trim(); passwordLogin = paswordFieldLogin.text.Trim(); if (string.IsNullOrEmpty(usernameLogin) || string.IsNullOrEmpty(passwordLogin)) { Debug.LogWarning("Username or password is empty!"); return; } await AuthenticationManager.SigninUsernamePassword(usernameLogin, passwordLogin); usernameFieldLogin.text = ""; paswordFieldLogin.text = ""; } private void NextToMenu() { MainMenu.Open(); Debug.Log("MainMenu Open"); } public async void Register() { if (IsRegisterFieldInvalid()) return; usernameRegister = usernameFieldRegister.text; paswordRegister = paswordFieldRegister.text; EmailRegister = EmailFieldRegister.text; AgeRegister = ageFieldRegister.text; if (!int.TryParse(AgeRegister, out int age)) { Debug.LogWarning("Age must be a valid number!"); return; } if (age < 6 || age > 12) { Debug.LogWarning("Age must be between 6 and 12 years!"); InvalidAge.SetActive(true); return; } if (string.IsNullOrEmpty(usernameRegister) || string.IsNullOrEmpty(paswordRegister)) { Debug.LogWarning("Username or password is empty!"); return; } await AuthenticationManager.SignUpUsernamePassword(usernameRegister, paswordRegister, EmailRegister, AgeRegister); SaveData dataToSave = new SaveData(); dataToSave.playerName = nameFieldRegister.text; dataToSave.agePlayer = AgeRegister; dataToSave.username = usernameRegister; dataToSave.password = paswordRegister; await Cloudsave.SaveData(dataToSave, "DataPlayer"); } }