550 lines
18 KiB
C#
550 lines
18 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Text;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
|
|
public class NetMgr
|
|
{
|
|
//单列
|
|
private static NetMgr instance=new NetMgr();
|
|
|
|
public static NetMgr Instance => instance;
|
|
|
|
private string Url= "http://192.168.2.24:8080/";
|
|
|
|
//登录获取玩家数据
|
|
private string lpginPlayerDataUrl = "http://192.168.2.24:8080/register";
|
|
//获取一个玩家模板
|
|
private string playerTempUrl = "http://192.168.2.24:8080/fh";
|
|
|
|
//改变玩家数据
|
|
private string changePlayerDataUrl = "http://192.168.2.24:8080/change_player_data";
|
|
|
|
//获取排行榜数据
|
|
private string rankPostUrl = "http://192.168.2.24:8080/get_user_Scends";
|
|
//获取总排行榜数据
|
|
private string rankAllGetUrl = "http://192.168.2.24:8080/get_allrank_Scends";
|
|
|
|
//获取所有关卡
|
|
private string allLevUrl = "http://192.168.2.24:8080/get_allLev_name";
|
|
//获取关卡萌宠信息
|
|
private string levPetInfoUrl = "http://192.168.2.24:8080/getLevDataById";
|
|
|
|
//提现记录上传
|
|
private string goldRealPostUrl = "http://192.168.2.24:8080/uploadGoldRealRecord";
|
|
//提现记录获取
|
|
private string goldRealGetUrl = "http://192.168.2.24:8080/getGoldRealRecord";
|
|
|
|
//分数上传
|
|
private string scoreUploadPostUrl = "http://192.168.2.24:8080/uploadScore";
|
|
|
|
//公告信息获取
|
|
private string noticeMsgUrl = "http://192.168.2.24:8080/getAnnouncement";
|
|
|
|
//邮件
|
|
private string mailUrl = "http://192.168.2.24:8080/claimReward";
|
|
|
|
//邀请
|
|
private string inviteUrl = "http://192.168.2.24:8080/HandleInvite";
|
|
|
|
//意见反馈
|
|
private string ideaUrl = "http://192.168.2.24:8080/get_idea_msg";
|
|
|
|
private NetMgr()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登录获取的玩家数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator PlayerDataPost(LoginMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
using (UnityWebRequest req = new UnityWebRequest(lpginPlayerDataUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查请求结果
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
// 处理服务器响应
|
|
string str = req.downloadHandler.text;
|
|
GameDataMgr.Instance.player = JsonMgr.Instance.LoadData<PlayerData>(str);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"Error: {req.error}"); // 打印错误信息
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取一个玩家模板
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator PlayerTempGet()
|
|
{
|
|
using (UnityWebRequest req = UnityWebRequest.Get(playerTempUrl))
|
|
{
|
|
// 发送请求并等待响应
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查请求结果
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
// 处理服务器响应
|
|
string str = req.downloadHandler.text;
|
|
GameDataMgr.Instance.playerTemp = JsonMgr.Instance.LoadData<PlayerData>(str);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"Error: {req.error}"); // 打印错误信息
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 玩家数据改变发送消息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator ChangeDataPost(PlayerData player)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(player);
|
|
using (UnityWebRequest req = new UnityWebRequest(changePlayerDataUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查请求结果
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
// 处理服务器响应
|
|
string str = req.downloadHandler.text;
|
|
GameDataMgr.Instance.player = JsonMgr.Instance.LoadData<PlayerData>(str);
|
|
//金币变化
|
|
UIManager.Instance.GetPanel<GamePanel>().UpdateGold();
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"Error: {req.error}"); // 打印错误信息
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 给服务器发送提现数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator GoldRealPost(GoldRealMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg);
|
|
using (UnityWebRequest req = new UnityWebRequest(goldRealPostUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查请求结果
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"Error: {req.error}"); // 打印错误信息
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取提现记录
|
|
/// </summary>
|
|
/// <param name="msg"></param>
|
|
/// <returns></returns>
|
|
public IEnumerator GoldRealGet(GoldRealMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg);
|
|
using (UnityWebRequest req = new UnityWebRequest(goldRealGetUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查请求结果
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
// 处理服务器响应
|
|
string str = req.downloadHandler.text;
|
|
GameDataMgr.Instance.goldRealList = JsonMgr.Instance.LoadData<List<GoldRealMsg>>(str);
|
|
|
|
//更新面板
|
|
if (GameDataMgr.Instance.goldRealList.Count > 0)
|
|
{
|
|
UIManager.Instance.GetPanel<GoldRecordPanel>().UpdatePanel(GameDataMgr.Instance.goldRealList);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"Error: {req.error}"); // 打印错误信息
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取所有关卡
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator AllLevGet()
|
|
{
|
|
using (UnityWebRequest req = UnityWebRequest.Get(allLevUrl))
|
|
{
|
|
// 发送请求并等待响应
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查请求结果
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
// 处理服务器响应
|
|
string str = req.downloadHandler.text;
|
|
GameDataMgr.Instance.levList = JsonMgr.Instance.LoadData<List<AllLevData>>(str);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"Error: {req.error}"); // 打印错误信息
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取关卡萌宠信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator LevPetInfoPost(LevRankMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
|
|
using (UnityWebRequest req = new UnityWebRequest(levPetInfoUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
GameDataMgr.Instance.levData = JsonMgr.Instance.LoadData<LevData>(js);
|
|
GameMgr.Instance.CreatePet();
|
|
//隐藏关卡状态面板
|
|
if (UIManager.Instance.GetPanel<AllLevStatePanel>()!=null)
|
|
{
|
|
UIManager.Instance.HidePanel<AllLevStatePanel>();
|
|
}
|
|
//隐藏排行榜关卡面板
|
|
if (UIManager.Instance.GetPanel<AllLevPanel>() != null)
|
|
{
|
|
UIManager.Instance.HidePanel<AllLevPanel>();
|
|
}
|
|
//隐藏通关面板1
|
|
if (UIManager.Instance.GetPanel<Pass1Panel>() != null)
|
|
{
|
|
UIManager.Instance.HidePanel<Pass1Panel>();
|
|
}
|
|
//隐藏通关面板1
|
|
if (UIManager.Instance.GetPanel<Pass2Panel>() != null)
|
|
{
|
|
UIManager.Instance.HidePanel<Pass2Panel>();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取关卡排行榜信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator RankPost(LevRankMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
|
|
using (UnityWebRequest req = new UnityWebRequest(rankPostUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
GameDataMgr.Instance.rankData = JsonMgr.Instance.LoadData<Dictionary<string, List<PlayerData>>>(js);
|
|
if (GameDataMgr.Instance.rankData==null)
|
|
{
|
|
GameDataMgr.Instance.rankData=new Dictionary<string, List<PlayerData>>();
|
|
GameDataMgr.Instance.rankData.Add("UserList",new List<PlayerData>());
|
|
}
|
|
UIManager.Instance.GetPanel<RankPanel>().UpdatePanel(GameDataMgr.Instance.rankData["UserList"]);
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取总排行榜数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator RankAllGet()
|
|
{
|
|
using (UnityWebRequest req = UnityWebRequest.Get(rankAllGetUrl))
|
|
{
|
|
// 发送请求并等待响应
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
GameDataMgr.Instance.rankAllData = JsonMgr.Instance.LoadData<Dictionary<string, List<PlayerData>>>(js);
|
|
UIManager.Instance.ShowPanel<RankAllPanel>().UpdatePanel(GameDataMgr.Instance.rankAllData["UserList"]);
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分数上传,获取关卡的排名
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator ScoreUploadPost(ScoreUploadMsg msg,BasePanel pass)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
|
|
using (UnityWebRequest req = new UnityWebRequest(scoreUploadPostUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
BackRankData scoreRank = JsonMgr.Instance.LoadData<BackRankData>(js,JsonType.JsonUtlity);
|
|
GamePanel gamePanel = UIManager.Instance.GetPanel<GamePanel>();
|
|
if (pass is Pass1Panel)
|
|
{
|
|
(pass as Pass1Panel).UpdatePanel(gamePanel.levInt, gamePanel.scoreInt, scoreRank.rankInt);
|
|
}
|
|
else if (pass is Pass2Panel)
|
|
{
|
|
(pass as Pass2Panel).UpdatePanel(gamePanel.levInt, gamePanel.scoreInt, scoreRank.rankInt);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取公告信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator NoticeMasgGet()
|
|
{
|
|
using (UnityWebRequest req = UnityWebRequest.Get(noticeMsgUrl))
|
|
{
|
|
// 发送请求并等待响应
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
NoticeMsg noticeMsg = JsonMgr.Instance.LoadData<NoticeMsg>(js,JsonType.JsonUtlity);
|
|
UIManager.Instance.ShowPanel<PublicPanel>().UpdatePanel(noticeMsg.content);
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 填写邀请
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator InvitePost(InviteMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
|
|
using (UnityWebRequest req = new UnityWebRequest(inviteUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
InviteReturnMsg retMsg = JsonMgr.Instance.LoadData<InviteReturnMsg>(js,JsonType.JsonUtlity);
|
|
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 邮件
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator MailPost(CommonMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
|
|
using (UnityWebRequest req = new UnityWebRequest(mailUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
string js = req.downloadHandler.text;
|
|
if (js.Contains("\"openId\""))
|
|
{
|
|
CommonMsg common= JsonMgr.Instance.LoadData<CommonMsg>(js, JsonType.JsonUtlity);
|
|
}
|
|
else if (js.Contains("\"id\""))
|
|
{
|
|
MailInfo info = new MailInfo();
|
|
info.mailData = JsonMgr.Instance.LoadData<MailData>(js,JsonType.JsonUtlity);
|
|
filePath = Path.Combine(Application.persistentDataPath, GameDataMgr.Instance.player.openId);
|
|
LoadMailData();
|
|
GameDataMgr.Instance.info.Add(info);
|
|
SaveMailData(GameDataMgr.Instance.info);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 发送意见建议
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IEnumerator IdeaPost(IdeaMsg msg)
|
|
{
|
|
string strMsg = JsonMgr.Instance.SaveData(msg,JsonType.JsonUtlity);
|
|
Debug.Log(strMsg);
|
|
|
|
using (UnityWebRequest req = new UnityWebRequest(ideaUrl, "POST"))
|
|
{
|
|
// 发送请求并等待响应
|
|
byte[] jsonToSend = Encoding.UTF8.GetBytes(strMsg);
|
|
req.uploadHandler = new UploadHandlerRaw(jsonToSend);
|
|
req.downloadHandler = new DownloadHandlerBuffer();
|
|
req.SetRequestHeader("Content-Type", "application/json");
|
|
yield return req.SendWebRequest();
|
|
|
|
// 检查是否有错误
|
|
if (req.result == UnityWebRequest.Result.Success)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Data sent successfully. Response: " + req.downloadHandler.text);
|
|
}
|
|
}
|
|
}
|
|
|
|
private string filePath;
|
|
|
|
// 保存邮件数据到本地
|
|
public void SaveMailData(List<MailInfo> info)
|
|
{
|
|
string json = JsonMgr.Instance.SaveData(info);
|
|
File.WriteAllText(filePath, json);
|
|
}
|
|
|
|
// 加载本地邮件数据
|
|
private void LoadMailData()
|
|
{
|
|
if (File.Exists(filePath))
|
|
{
|
|
string json = File.ReadAllText(filePath);
|
|
GameDataMgr.Instance.info = JsonMgr.Instance.LoadData<List<MailInfo>>(json);
|
|
if (GameDataMgr.Instance.info == null)
|
|
{
|
|
GameDataMgr.Instance.info = new List<MailInfo>();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GameDataMgr.Instance.info = new List<MailInfo>();
|
|
}
|
|
}
|
|
}
|