Initial commit: Client Doc docs Server Tools
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,269 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace XGame
|
||||
{
|
||||
public class AuthRegisterLoginController : MonoBehaviour
|
||||
{
|
||||
private TMP_InputField loginUsernameField;
|
||||
private TMP_InputField loginPasswordField;
|
||||
private TMP_InputField registerUsernameField;
|
||||
private TMP_InputField registerPasswordField;
|
||||
private TMP_InputField registerConfirmField;
|
||||
private Toggle toggleRemember;
|
||||
private Button btnLogin;
|
||||
private Button btnRegister;
|
||||
private Button btnGuest;
|
||||
private Button btnTabLogin;
|
||||
private Button btnTabRegister;
|
||||
private GameObject loginForm;
|
||||
private GameObject registerForm;
|
||||
private GameObject rememberRow;
|
||||
private TMP_Text tipsText;
|
||||
private TMP_Text titleText;
|
||||
private TMP_Text rememberText;
|
||||
private string luaModule = "client/login";
|
||||
private bool isRegisterMode;
|
||||
private bool isLoading;
|
||||
public Action<string, string, bool, bool> OnLogin;
|
||||
public Action<string, string, string> OnRegister;
|
||||
public Action<string, string, bool, bool> OnGuestLogin;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
CacheControls();
|
||||
WireEvents();
|
||||
SwitchLogin();
|
||||
}
|
||||
|
||||
public void Bind(string module)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(module))
|
||||
{
|
||||
luaModule = module;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetInitialState(string account, bool remember, bool autoLogin, bool agreement)
|
||||
{
|
||||
SetInitialState(account, string.Empty, remember, autoLogin, agreement);
|
||||
}
|
||||
|
||||
public void SetInitialState(string account, string password, bool rememberPassword, bool autoLogin, bool agreement)
|
||||
{
|
||||
CacheControls();
|
||||
SetInputText(loginUsernameField, account);
|
||||
SetInputText(loginPasswordField, rememberPassword ? password : string.Empty);
|
||||
SetInputText(registerUsernameField, account);
|
||||
if (toggleRemember != null)
|
||||
{
|
||||
toggleRemember.isOn = rememberPassword;
|
||||
}
|
||||
if (rememberText != null)
|
||||
{
|
||||
rememberText.text = "记住密码";
|
||||
}
|
||||
}
|
||||
|
||||
public void SetServerInfo(string serverName, string status)
|
||||
{
|
||||
}
|
||||
|
||||
public void SetVersion(string version)
|
||||
{
|
||||
}
|
||||
|
||||
public void SetLoading(bool loading)
|
||||
{
|
||||
isLoading = loading;
|
||||
SetButtonEnabled(btnLogin, !loading);
|
||||
SetButtonEnabled(btnRegister, !loading);
|
||||
SetButtonEnabled(btnGuest, !loading);
|
||||
SetButtonEnabled(btnTabLogin, !loading);
|
||||
SetButtonEnabled(btnTabRegister, !loading);
|
||||
if (loading)
|
||||
{
|
||||
ShowError(isRegisterMode ? "Registering..." : "Logging in...");
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowError(string message)
|
||||
{
|
||||
CacheControls();
|
||||
if (tipsText != null)
|
||||
{
|
||||
tipsText.text = message ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
public void ToggleBaseAtlas()
|
||||
{
|
||||
}
|
||||
|
||||
public void SwitchLogin()
|
||||
{
|
||||
isRegisterMode = false;
|
||||
SetActive(loginForm, true);
|
||||
SetActive(registerForm, false);
|
||||
SetActive(rememberRow, true);
|
||||
SetActive(btnLogin, true);
|
||||
SetActive(btnGuest, true);
|
||||
SetActive(btnRegister, false);
|
||||
if (titleText != null)
|
||||
{
|
||||
titleText.text = "Login";
|
||||
}
|
||||
ShowError(string.Empty);
|
||||
}
|
||||
|
||||
public void SwitchRegister()
|
||||
{
|
||||
isRegisterMode = true;
|
||||
SetActive(loginForm, false);
|
||||
SetActive(registerForm, true);
|
||||
SetActive(rememberRow, false);
|
||||
SetActive(btnLogin, false);
|
||||
SetActive(btnGuest, false);
|
||||
SetActive(btnRegister, true);
|
||||
if (titleText != null)
|
||||
{
|
||||
titleText.text = "Register";
|
||||
}
|
||||
ShowError(string.Empty);
|
||||
}
|
||||
|
||||
private void OnLoginClicked()
|
||||
{
|
||||
if (isLoading)
|
||||
{
|
||||
return;
|
||||
}
|
||||
OnLogin?.Invoke(
|
||||
GetInputText(loginUsernameField),
|
||||
GetInputText(loginPasswordField),
|
||||
toggleRemember != null && toggleRemember.isOn,
|
||||
false);
|
||||
}
|
||||
|
||||
private void OnRegisterClicked()
|
||||
{
|
||||
if (isLoading)
|
||||
{
|
||||
return;
|
||||
}
|
||||
OnRegister?.Invoke(
|
||||
GetInputText(registerUsernameField),
|
||||
GetInputText(registerPasswordField),
|
||||
GetInputText(registerConfirmField));
|
||||
}
|
||||
|
||||
private void OnGuestClicked()
|
||||
{
|
||||
if (isLoading)
|
||||
{
|
||||
return;
|
||||
}
|
||||
OnGuestLogin?.Invoke(
|
||||
GetInputText(loginUsernameField),
|
||||
GetInputText(loginPasswordField),
|
||||
toggleRemember != null && toggleRemember.isOn,
|
||||
false);
|
||||
}
|
||||
|
||||
private void CacheControls()
|
||||
{
|
||||
loginUsernameField = loginUsernameField ? loginUsernameField : Find<TMP_InputField>("LoginUsernameField");
|
||||
loginPasswordField = loginPasswordField ? loginPasswordField : Find<TMP_InputField>("LoginPasswordField");
|
||||
registerUsernameField = registerUsernameField ? registerUsernameField : Find<TMP_InputField>("RegisterUsernameField");
|
||||
registerPasswordField = registerPasswordField ? registerPasswordField : Find<TMP_InputField>("RegisterPasswordField");
|
||||
registerConfirmField = registerConfirmField ? registerConfirmField : Find<TMP_InputField>("RegisterConfirmField");
|
||||
toggleRemember = toggleRemember ? toggleRemember : Find<Toggle>("ToggleRemember");
|
||||
btnLogin = btnLogin ? btnLogin : Find<Button>("BtnLogin");
|
||||
btnRegister = btnRegister ? btnRegister : Find<Button>("BtnRegister");
|
||||
btnGuest = btnGuest ? btnGuest : Find<Button>("BtnGuest");
|
||||
btnTabLogin = btnTabLogin ? btnTabLogin : Find<Button>("BtnTabLogin");
|
||||
btnTabRegister = btnTabRegister ? btnTabRegister : Find<Button>("BtnTabRegister");
|
||||
loginForm = loginForm ? loginForm : FindGameObject("LoginForm");
|
||||
registerForm = registerForm ? registerForm : FindGameObject("RegisterForm");
|
||||
rememberRow = rememberRow ? rememberRow : FindGameObject("RememberRow");
|
||||
tipsText = tipsText ? tipsText : Find<TMP_Text>("TextTips");
|
||||
titleText = titleText ? titleText : Find<TMP_Text>("TextPanelTitle");
|
||||
rememberText = rememberText ? rememberText : Find<TMP_Text>("TextRemember");
|
||||
}
|
||||
|
||||
private void WireEvents()
|
||||
{
|
||||
AddClick(btnLogin, OnLoginClicked);
|
||||
AddClick(btnRegister, OnRegisterClicked);
|
||||
AddClick(btnGuest, OnGuestClicked);
|
||||
AddClick(btnTabLogin, SwitchLogin);
|
||||
AddClick(btnTabRegister, SwitchRegister);
|
||||
}
|
||||
|
||||
private T Find<T>(string name) where T : Component
|
||||
{
|
||||
Transform target = transform.FindTransform(name);
|
||||
return target == null ? null : target.GetComponent<T>();
|
||||
}
|
||||
|
||||
private GameObject FindGameObject(string name)
|
||||
{
|
||||
Transform target = transform.FindTransform(name);
|
||||
return target == null ? null : target.gameObject;
|
||||
}
|
||||
|
||||
private void AddClick(Button button, UnityEngine.Events.UnityAction action)
|
||||
{
|
||||
if (button == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
button.onClick.RemoveListener(action);
|
||||
button.onClick.AddListener(action);
|
||||
}
|
||||
|
||||
private static string GetInputText(TMP_InputField input)
|
||||
{
|
||||
return input == null ? string.Empty : input.text;
|
||||
}
|
||||
|
||||
private static void SetInputText(TMP_InputField input, string text)
|
||||
{
|
||||
if (input != null)
|
||||
{
|
||||
input.text = text ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
private static void SetButtonEnabled(Button button, bool enabled)
|
||||
{
|
||||
if (button != null)
|
||||
{
|
||||
button.interactable = enabled;
|
||||
}
|
||||
}
|
||||
|
||||
private static void SetActive(Component component, bool active)
|
||||
{
|
||||
if (component != null)
|
||||
{
|
||||
component.gameObject.SetActive(active);
|
||||
}
|
||||
}
|
||||
|
||||
private static void SetActive(GameObject gameObject, bool active)
|
||||
{
|
||||
if (gameObject != null)
|
||||
{
|
||||
gameObject.SetActive(active);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user