2024-04-27 11:37:11 +08:00
|
|
|
|
using System;
|
|
|
|
|
using Cysharp.Threading.Tasks;
|
2024-04-26 18:14:51 +08:00
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using TMPro;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Networking;
|
2024-04-06 18:15:42 +08:00
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
2024-04-11 16:44:25 +08:00
|
|
|
|
namespace Game
|
2024-04-06 18:15:42 +08:00
|
|
|
|
{
|
2024-04-11 16:44:25 +08:00
|
|
|
|
[UIType(UIType.InputNameUI)]
|
|
|
|
|
public class InputNameUI : UIBase
|
2024-04-06 18:15:42 +08:00
|
|
|
|
{
|
2024-04-26 18:14:51 +08:00
|
|
|
|
private TMP_InputField _inpUserName;
|
|
|
|
|
private TMP_InputField _inputUserPassword;
|
2024-04-11 16:44:25 +08:00
|
|
|
|
private Button _button;
|
2024-04-06 18:15:42 +08:00
|
|
|
|
|
2024-04-26 18:14:51 +08:00
|
|
|
|
private UserLoginData _userData;
|
|
|
|
|
private bool isLogining;
|
|
|
|
|
|
2024-04-11 16:44:25 +08:00
|
|
|
|
public override void Init()
|
|
|
|
|
{
|
|
|
|
|
base.Init();
|
2024-04-26 18:14:51 +08:00
|
|
|
|
this._inpUserName = self.transform.FindChildDeep<TMP_InputField>("inp_Name");
|
|
|
|
|
this._inputUserPassword = self.transform.FindChildDeep<TMP_InputField>("inp_Password");
|
2024-04-11 16:44:25 +08:00
|
|
|
|
this._button = self.transform.FindChildDeep<Button>("btn_Sure");
|
2024-04-06 18:15:42 +08:00
|
|
|
|
|
2024-04-11 16:44:25 +08:00
|
|
|
|
this._button.onClick.AddListener(ClickSureButton);
|
2024-04-26 18:14:51 +08:00
|
|
|
|
this.isLogining = false;
|
2024-04-11 16:44:25 +08:00
|
|
|
|
}
|
2024-04-06 18:15:42 +08:00
|
|
|
|
|
2024-04-11 16:44:25 +08:00
|
|
|
|
public override void Dispose()
|
|
|
|
|
{
|
|
|
|
|
base.Dispose();
|
|
|
|
|
this._button.onClick.RemoveListener(ClickSureButton);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ClickSureButton()
|
|
|
|
|
{
|
2024-04-26 18:14:51 +08:00
|
|
|
|
if (this.isLogining)
|
|
|
|
|
return;
|
2024-04-27 11:37:11 +08:00
|
|
|
|
this.Pause();
|
2024-04-26 18:14:51 +08:00
|
|
|
|
|
|
|
|
|
var userName = this._inpUserName.text;
|
|
|
|
|
if (string.IsNullOrEmpty(userName))
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
var userPassword = this._inputUserPassword.text;
|
|
|
|
|
if (string.IsNullOrEmpty(userPassword))
|
2024-04-11 16:44:25 +08:00
|
|
|
|
return;
|
2024-04-06 18:15:42 +08:00
|
|
|
|
|
2024-04-26 18:14:51 +08:00
|
|
|
|
_userData = new UserLoginData() { username = userName, password = userPassword };
|
|
|
|
|
this.isLogining = true;
|
|
|
|
|
this.LoginAsync().Forget();
|
2024-04-11 16:44:25 +08:00
|
|
|
|
}
|
2024-04-26 18:14:51 +08:00
|
|
|
|
|
|
|
|
|
async UniTask LoginAsync()
|
|
|
|
|
{
|
2024-04-27 11:37:11 +08:00
|
|
|
|
var responseData = new ResponseData();
|
|
|
|
|
var isFinish = false;
|
|
|
|
|
try
|
2024-04-26 18:14:51 +08:00
|
|
|
|
{
|
2024-04-27 11:37:11 +08:00
|
|
|
|
isFinish = await Game.httpManager.LoginAsync(this._userData.username, this._userData.password, responseData);
|
|
|
|
|
this.Resume();
|
|
|
|
|
if (isFinish)
|
|
|
|
|
{
|
|
|
|
|
CommonHelper.OpenAndSetTips($"登录成功,请点击确定按钮\n code:{responseData?.code}\n msg:{responseData?.msg}", () => { EventManager.Instance.FireNow(this, new InputNameFinishEventArgs(this._userData.username)); });
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CommonHelper.OpenAndSetTips($"登录失败,可点击进入离线模式按钮\n code:{responseData?.code}\n msg:{responseData?.msg}", () => { EventManager.Instance.FireNow(this, new InputNameFinishEventArgs(this._userData.username)); }, "进入离线模式");
|
|
|
|
|
this.isLogining = false;
|
|
|
|
|
}
|
2024-04-26 18:14:51 +08:00
|
|
|
|
}
|
2024-04-27 11:37:11 +08:00
|
|
|
|
catch (Exception e)
|
2024-04-26 18:14:51 +08:00
|
|
|
|
{
|
2024-04-27 11:37:11 +08:00
|
|
|
|
CommonHelper.OpenAndSetTips($"连接服务器失败,可点击进入离线模式按钮\n code:{responseData?.code}\n msg:{responseData?.msg}", () => { EventManager.Instance.FireNow(this, new InputNameFinishEventArgs(this._userData.username)); }, "进入离线模式");
|
2024-04-26 18:14:51 +08:00
|
|
|
|
this.isLogining = false;
|
2024-04-27 11:37:11 +08:00
|
|
|
|
this.Resume();
|
2024-04-26 18:14:51 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// async UniTask Login()
|
|
|
|
|
// {
|
|
|
|
|
// string url = "http://192.168.1.129:8787/api/user/login";
|
|
|
|
|
// WWWForm wwwForm = new WWWForm();
|
|
|
|
|
// wwwForm.AddField("username", this._userData.username);
|
|
|
|
|
// wwwForm.AddField("password", this._userData.password);
|
|
|
|
|
// using (UnityWebRequest request = UnityWebRequest.Post(url, wwwForm))
|
|
|
|
|
// {
|
|
|
|
|
// await request.SendWebRequest();
|
|
|
|
|
//
|
|
|
|
|
// // 处理响应
|
|
|
|
|
// if (request.result == UnityWebRequest.Result.Success)
|
|
|
|
|
// {
|
|
|
|
|
// Debug.Log("POST request successful!");
|
|
|
|
|
// var downloadHandlerText = request.downloadHandler.text;
|
|
|
|
|
// Debug.Log("Response: " + downloadHandlerText);
|
|
|
|
|
//
|
|
|
|
|
// var data = JsonConvert.DeserializeObject<ResponseData>(downloadHandlerText);
|
|
|
|
|
// if (data.code == "0")
|
|
|
|
|
// {
|
|
|
|
|
// Game.socketManager.SetHttpToken(downloadHandlerText);
|
|
|
|
|
// Game.socketManager.ConnectAsync();
|
|
|
|
|
// EventManager.Instance.FireNow(this, new InputNameFinishEventArgs(this._userData.username));
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// this.isLogining = false;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// Debug.LogError("POST request failed: " + request.error);
|
|
|
|
|
// this.isLogining = false;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2024-04-06 18:15:42 +08:00
|
|
|
|
}
|
|
|
|
|
}
|