chunk 1: core gameplay scripts scenes runtime assets
This commit is contained in:
115
Assets/Scripts/Aunthetication/UserRegistration.cs
Normal file
115
Assets/Scripts/Aunthetication/UserRegistration.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using TMPro;
|
||||
|
||||
public class UserRegistration : MonoBehaviour
|
||||
{
|
||||
public TMP_InputField usernameInput;
|
||||
public TMP_InputField nameInput;
|
||||
public TMP_InputField countryInput;
|
||||
public TMP_InputField emailInput;
|
||||
public TMP_InputField passwordInput;
|
||||
public TMP_InputField rePasswordInput;
|
||||
|
||||
public TextMeshProUGUI feedbackText;
|
||||
|
||||
public GameObject registrationPanel;
|
||||
public GameObject loginPanel;
|
||||
|
||||
private string registerUrl = "http://127.0.0.1:8001/auth/users/";
|
||||
|
||||
public void RegisterUser()
|
||||
{
|
||||
// Debug message for button press
|
||||
Debug.Log("Register button clicked! Starting registration process.");
|
||||
|
||||
// Collect user input
|
||||
string username = usernameInput.text;
|
||||
string name = nameInput.text;
|
||||
string country = countryInput.text;
|
||||
string email = emailInput.text;
|
||||
string password = passwordInput.text;
|
||||
string rePassword = rePasswordInput.text;
|
||||
|
||||
// Log the collected data
|
||||
Debug.Log($"Collected registration data - Username: {username}, Name: {name}, Email: {email}");
|
||||
|
||||
// Validate input
|
||||
if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(name) ||
|
||||
string.IsNullOrEmpty(country) || string.IsNullOrEmpty(email) ||
|
||||
string.IsNullOrEmpty(password) || string.IsNullOrEmpty(rePassword))
|
||||
{
|
||||
feedbackText.text = "All fields are required!";
|
||||
Debug.Log("Validation failed: Some fields are missing.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (password != rePassword)
|
||||
{
|
||||
feedbackText.text = "Passwords do not match!";
|
||||
Debug.Log("Validation failed: Passwords do not match.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Validation passed
|
||||
Debug.Log("Validation passed. Starting API call...");
|
||||
StartCoroutine(Register(username, name, country, email, password));
|
||||
}
|
||||
|
||||
private IEnumerator Register(string username, string name, string country, string email, string password)
|
||||
{
|
||||
Debug.Log("Register coroutine started");
|
||||
|
||||
string jsonData = JsonUtility.ToJson(new RegistrationRequest
|
||||
{
|
||||
username = username,
|
||||
name = name,
|
||||
country = country,
|
||||
email = email,
|
||||
password = password,
|
||||
re_password = password
|
||||
});
|
||||
|
||||
Debug.Log($"Sending registration request to: {registerUrl}");
|
||||
Debug.Log($"Request data: {jsonData}");
|
||||
|
||||
using (UnityWebRequest request = new UnityWebRequest(registerUrl, "POST"))
|
||||
{
|
||||
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonData);
|
||||
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
|
||||
request.downloadHandler = new DownloadHandlerBuffer();
|
||||
request.SetRequestHeader("Content-Type", "application/json");
|
||||
|
||||
Debug.Log("Sending web request...");
|
||||
yield return request.SendWebRequest();
|
||||
Debug.Log($"Request completed with result: {request.result}");
|
||||
|
||||
if (request.result == UnityWebRequest.Result.Success)
|
||||
{
|
||||
Debug.Log("API call successful. Response: " + request.downloadHandler.text);
|
||||
feedbackText.text = "Registration Successful! Redirecting to login...";
|
||||
registrationPanel.SetActive(false);
|
||||
loginPanel.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError($"API call failed: {request.error}");
|
||||
Debug.LogError($"Response from server: {request.downloadHandler.text}");
|
||||
feedbackText.text = $"Registration failed: {request.downloadHandler.text}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class RegistrationRequest
|
||||
{
|
||||
public string username;
|
||||
public string name;
|
||||
public string country;
|
||||
public string email;
|
||||
public string password;
|
||||
public string re_password;
|
||||
}
|
||||
Reference in New Issue
Block a user