using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class LoginWindow : MonoBehaviour
{
[SerializeField] private TMP_InputField ipd_user;
[SerializeField] private TMP_InputField ipd_pwd;
[SerializeField] private TextMeshProUGUI txt_errorMessage;
private string username;
private string password;
[SerializeField] private Button btn_Login;
public void Awake()
{
ipd_user.onValidateInput += CheckForEnter;
ipd_pwd.onValidateInput += CheckForEnter;
btn_Login.onClick.AddListener(() =>
{
Login();
});
}
private char CheckForEnter(string text, int charIndex, char addedChar)
{
if (addedChar == '\n')
{
Debug.Log("检测到回车");
Login(false);
return '\0';
}
else
return addedChar;
}
private async void Login(bool sound = true)
{
//if (sound)
// SoundPlay(audioClick);
txt_errorMessage.text = "";
username = ipd_user.text;
password = ipd_pwd.text;
if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
{
txt_errorMessage.text = "用户名或密码不能为空";
}
else
{
var result = await Entrance.instance.Login(username, password);
if (result == null)
txt_errorMessage.text = "请检查网络连接";
else
{
if (result.success)
Back();
else
txt_errorMessage.text = "账号密码错误";
}
}
}
public void Init()
{
txt_errorMessage.text = "";
ipd_user.text = "";
ipd_pwd.text = "";
Show();
}
private void OnDestroy()
{
ipd_user.onValidateInput -= CheckForEnter;
ipd_pwd.onValidateInput -= CheckForEnter;
}
void Back(Action finish = null)
{
//CG.DOFade(0, 0.15f);
/*child1.DOScaleY(0, 0.15f).OnComplete(() =>
{
HideType();
finish?.Invoke();
});*/
}
public void Show()
{
gameObject.SetActive(true);
//CG.alpha = 0;
/*SoundPlay(audioShow);
child1.localScale = new Vector3(1, 0, 1);
//CG.DOFade(1, 0.25f);
child1.DOScaleY(1, 0.25f);*/
}
}