This commit is contained in:
GL 2024-11-12 14:07:09 +08:00
commit 966acd38e1
12 changed files with 3638 additions and 497 deletions

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,7 @@ public class LoginAndGetToken : MonoBehaviour
Login();
}
public async void Login()
public async void Login()
{
// ... 되쩌쭉서 ...
loginbody body = new loginbody();
@ -26,7 +26,7 @@ public class LoginAndGetToken : MonoBehaviour
body.password = "123456";// + 123456;
body.verifyCode = 111111;
string loginResponse = await web.SendRequest("http://121.40.42.41:8080/snail/user/login", "POST", JsonUtility.ToJson(body));
Debug.Log("LoginAndGetToken되쩌:"+loginResponse);
//Debug.Log("LoginAndGetToken되쩌:"+loginResponse);
string token = getToken(loginResponse);
OnTokenReceived?.Invoke(token);
//되쩌헝헹//綠繫법

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2025f7f7c1180de42b4787409a30b15d
guid: 8ee1a43c8ad7f8c41bad48013bf5af49
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -13,14 +13,22 @@ public class logoPanel : MonoBehaviour
public InputField userNameField;
public InputField passwordField;
public InputField verifyCodeField;
public Button pwdBtn;
public Button yzmBtn;
public GameObject sjh;
public Image regImg;
public GameObject yzm;
public GameObject mm;
public GameObject zh;
public GameObject qrmm;
public GameObject yqm;
public GameObject logBtn;
public Button loginBtn;
public GameObject regbtn;
public Button rigistBtn;
public delegate void TokenReceivedDelegate(string token);
public static event TokenReceivedDelegate OnTokenReceived;
@ -32,10 +40,18 @@ public class logoPanel : MonoBehaviour
loginBtn.onClick.AddListener(() => StartCoroutine(OnClickLoginBtn()));
rigistBtn.onClick.AddListener(OnClickRigistBtn);
}
private void OnClickRigistBtn()
{
yzm.gameObject.SetActive(true);
mm.gameObject.SetActive(true);
qrmm.gameObject.SetActive(true);
yqm.gameObject.SetActive(true);
logBtn.gameObject.SetActive(false);
regbtn.gameObject.SetActive(true);
regImg.gameObject.SetActive(true);
pwdBtn.gameObject.SetActive(false);
yzmBtn.gameObject.SetActive(false);
}
//µã»÷µÇ¼°´Å¥
@ -49,13 +65,17 @@ public class logoPanel : MonoBehaviour
};
string jsonBody = JsonUtility.ToJson(body);
using (UnityWebRequest webRequest = UnityWebRequest.Post("http://121.40.42.41:8080/snail/user/login", jsonBody))
using (UnityWebRequest webRequest = new UnityWebRequest("http://121.40.42.41:8080/snail/user/login", "POST"))
{
webRequest.SetRequestHeader("Content-Type", "application/json");
// 创建和设置处理程序
webRequest.uploadHandler = new UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(jsonBody));
webRequest.uploadHandler.contentType = "application/json";
webRequest.downloadHandler = new DownloadHandlerBuffer();
// 发送请求
yield return webRequest.SendWebRequest();
// 检查请求结果
if (webRequest.result == UnityWebRequest.Result.Success)
{
string loginResponse = webRequest.downloadHandler.text;
@ -70,25 +90,23 @@ public class logoPanel : MonoBehaviour
}
}
//点击验证码按钮
//点击验证码登录按钮
private void OnClickYzmBtn()
{
pwdBtn.transform.position -= new Vector3(0f, 26.4f, 0f);
yzmBtn.transform.position += new Vector3(0f, 26.4f, 0f);
sjh.gameObject.SetActive(true);
yzm.gameObject.SetActive(true);
mm.gameObject.SetActive(false);
zh.gameObject.SetActive(false);
}
//点击密码按钮
//点击密码登录按钮
private void OnClickPwdBtn()
{
pwdBtn.transform.position += new Vector3(0f, 26.4f, 0f);
yzmBtn.transform.position -= new Vector3(0f, 26.4f, 0f);
sjh.gameObject.SetActive(false);
yzm.gameObject.SetActive(false);
mm.gameObject.SetActive(true);
zh.gameObject.SetActive(true);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 34ecfc23bb797c848943318a4441e0b6
guid: 9e50b3d02b729854e87c092afffd2a03
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -0,0 +1,234 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using System.Threading.Tasks;
public class selectGameEscape512 : MonoBehaviour
{
private int gameEscapeId;
// 定义一个事件,当 gameEscapeId 被更新时触发
public static event Action<int> OnGameEscapeIdUpdated;
void Start()
{
// 由于除登录注册外的其他方法都需要登录后返回的token
// 因此登录不在此发送请求(同时)
// 采用监听和事件回调的方法只有监听到登录和token返回时才运行其他方法
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
// 订阅事件,当 gameEscapeId 更新时调用 HandleGameEscapeIdUpdated
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
private string token; // 用于保存收到的 token
void HandleTokenReceived(string token)
{
// 使用 token
this.token = token;
Debug.Log("HandleTokenReceived监听:" + token);
StartCoroutine(GameEscapeRoutine(token)); // 启动协程每2秒调用一次gameEscape
}
void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
Debug.Log("GameEscapeId 已更新为: " + newGameEscapeId);
// 在这里添加你想要执行的逻辑
}
// 创建一个IEnumerator的协程
IEnumerator GameEscapeRoutine(string token)
{
while (true) // 无限循环来实现每2秒发送一次请求
{
yield return new WaitForSeconds(5f); // 每2秒暂停一次
yield return gameEscape(token); // 调用gameEscape方法
}
}
public async Task gameEscape(string token)
{
// 用来给请求头赋值
string Authorization = token;
Debug.Log("Loding(Authorization)请求头赋值" + Authorization);
// 5.1查询最近一场大屠杀
Dictionary<string, string> head51 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string response51 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", head51);
Debug.Log("5.1查询最近一场大屠杀(独立)" + response51); // 查询最近一场大逃亡游戏详情:
// 解析JSON数据
string json = response51;
Response response = JsonConvert.DeserializeObject<Response>(json);
if (response != null && response.code == 200 && response.data != null)
{
gameEscapeId = response.data.gameEscapeModel.id;
Debug.Log("解析成功id为: " + gameEscapeId);
// 触发事件,通知所有订阅者
OnGameEscapeIdUpdated?.Invoke(gameEscapeId);
}
else
{
Debug.LogError("解析失败或响应错误");
}
}
void OnDestroy()
{
// 取消监听,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
}
// Update is called once per frame
void Update()
{
}
[Serializable]
public class GameEscapeModel
{
public int id; // 解析游戏ID
public string gameNo; // 包括游戏编号
}
[Serializable]
public class GameEscapeRoomResponseVo
{
public int escapeId; // 逃脱游戏的ID
public int roomNo; // 房间号
}
[Serializable]
public class Data
{
public int carrySeconds; // 持续秒数
public GameEscapeModel gameEscapeModel; // 嵌套的GameEscapeModel对象
public List<GameEscapeRoomResponseVo> gameEscapeRoomResponseVoList; // 房间信息列表
public object gameEscapeUserModel; // 用户模型,可以保持为空或根据需要进行定义
}
[Serializable]
public class Response
{
public int code; // 状态码
public string message; // 返回信息
public Data data; // 数据对象
}
}
/*public class selectGameEscape512 : MonoBehaviour
{
int gameEscapeId;
void Start()
{
// 由于除登录注册外的其他方法都需要登录后返回的token
// 因此登录不在此发送请求(同时)
// 采用监听和事件回调的方法只有监听到登录和token返回时才运行其他方法
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
}
void HandleTokenReceived(string token)
{
// 使用 token
Debug.Log("HandleTokenReceived监听:" + token);
StartCoroutine(GameEscapeRoutine(token)); // 启动协程每2秒调用一次gameEscape
}
// 创建一个IEnumerator的协程
IEnumerator GameEscapeRoutine(string token)
{
while (true) // 无限循环来实现每2秒发送一次请求
{
yield return new WaitForSeconds(2f); // 每2秒暂停一次
yield return gameEscape(token); // 调用gameEscape方法
}
}
public async Task gameEscape(string token)
{
// 用来给请求头赋值
string Authorization = token;
Debug.Log("Loding(Authorization)请求头赋值" + Authorization);
// 5.1查询最近一场大屠杀
Dictionary<string, string> head51 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string response51 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", head51);
Debug.Log("5.1查询最近一场大屠杀(独立)" + response51); // 查询最近一场大逃亡游戏详情:
// 解析JSON数据
string json = response51;
Response response = JsonConvert.DeserializeObject<Response>(json);
if (response != null && response.code == 200 && response.data != null)
{
gameEscapeId = response.data.gameEscapeModel.id;
Debug.Log("解析成功id为: " + gameEscapeId);
}
else
{
Debug.LogError("解析失败或响应错误");
}
}
void OnDestroy()
{
// 取消监听,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
}
// Update is called once per frame
void Update()
{
}
[Serializable]
public class GameEscapeModel
{
public int id; // 解析游戏ID
public string gameNo; // 包括游戏编号
}
[Serializable]
public class GameEscapeRoomResponseVo
{
public int escapeId; // 逃脱游戏的ID
public int roomNo; // 房间号
}
[Serializable]
public class Data
{
public int carrySeconds; // 持续秒数
public GameEscapeModel gameEscapeModel; // 嵌套的GameEscapeModel对象
public List<GameEscapeRoomResponseVo> gameEscapeRoomResponseVoList; // 房间信息列表
public object gameEscapeUserModel; // 用户模型,可以保持为空或根据需要进行定义
}
[Serializable]
public class Response
{
public int code; // 状态码
public string message; // 返回信息
public Data data; // 数据对象
}
}*/

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b7936430f01cc8343a1e62fc2052a12b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -154,7 +154,7 @@ public class web : MonoBehaviour
// Promptmgr.Instance.PromptBubble(request.error, Color.black,Color.red);
return null;
}
else
else
{
// 处理返回的Cookie
string setCookieHeader;

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fe572b1c84900a9488ac4f55917dfefa
guid: db50a6d583762ea45b20d705d0e068cd
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -1 +1 @@
验证码手机号登录密码登录手机号验证码立刻登录获取验证码没有账号?立即点击注册
验证码手机号登录密码登录手机号验证码立刻登录获取验证码没有账号?立即点击注册确认密码邀请游戏