From bd0ba263761a866ca0d698169d2d83b6a11c35e7 Mon Sep 17 00:00:00 2001 From: CoderM <coderm@qq.com> Date: Thu, 10 Dec 2020 17:04:37 +0800 Subject: [PATCH] CoderM: 增加SDKJSON处理 --- Assets/Scripts/Guide/TestButton.cs | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 225 insertions(+), 15 deletions(-) diff --git a/Assets/Scripts/Guide/TestButton.cs b/Assets/Scripts/Guide/TestButton.cs index 977399d..4f0fd8a 100644 --- a/Assets/Scripts/Guide/TestButton.cs +++ b/Assets/Scripts/Guide/TestButton.cs @@ -1,7 +1,14 @@ -using System.Collections; +using System; +using System.Collections; using UnityEngine; using UnityEngine.UI; using KTGMGemClient; +using LitJson; +using UnityEngine.Networking; +using System.Net; +using System.IO; +using System.Collections.Generic; + public class TestButton : MonoBehaviour { //public Text t; @@ -9,28 +16,223 @@ void Start() { - transform.Find("TowerBuyBtn").GetComponent<Button>().onClick.AddListener(OnClickTowerBuyBtn); + // transform.Find("TowerBuyBtn").GetComponent<Button>().onClick.AddListener(OnClickTowerBuyBtn); - transform.Find("GuidePanel/Image_TowerPos2").GetComponent<Button>().onClick.AddListener(GetOneTowerPos); + // transform.Find("GuidePanel/Image_TowerPos2").GetComponent<Button>().onClick.AddListener(GetOneTowerPos); - int guide = PlayerPrefs.GetInt("GemBattleGuide"); + // int guide = PlayerPrefs.GetInt("GemBattleGuide"); // string s="<color=red>范围伤害</color>"; // t.text=s; // Debug.Log(s.Length); + TestFinalPanel(); + // isSending = false; + // score = 0; + + // TestHttp(); + } + + int score; + private void OnGUI() + { + GUILayout.BeginArea(new Rect(5, 330, 150, 300)); + if (GUILayout.Button("SendRequest", GUILayout.Width(150), GUILayout.Height(70))) + { + //SendRequest("aa", 4700, 28); + score += 10; + SendPost(score.ToString(), score, 1, "25关 3波"); + } + + if (GUILayout.Button("SendGet", GUILayout.Width(150), GUILayout.Height(70))) + { + SendGet(); + + } + + if (GUILayout.Button("清理本地存储", GUILayout.Width(150), GUILayout.Height(70))) + { + PlayerPrefs.DeleteAll(); + Debug.Log("清理本地存储"); + + } + GUILayout.EndArea(); + + } + private JsonData loginData; + + public string imei0 = "";//设备信息唯一ID + private bool isSending = false; + void TestHttp() + { + if (Application.platform == RuntimePlatform.Android) + { + //GetetDeviceIMEI();//获取安卓手机IMEI + imei0 = TDAA_SDKManager.Ins.GetDeviceId();//使用设备ID + } + else if (Application.platform == RuntimePlatform.WindowsEditor) + { + imei0 = "MyTestGemBattle123"; + } + Debug.Log("设置imei0:" + imei0); + } + + + /// <summary> + /// + /// </summary> + /// <param name="nickname"></param> + /// <param name="score"></param> + /// <param name="level"></param> + private void SendPost(string nickname, int score, int level, string waveInfo) + { + Debug.Log("开始Post"); + if (isSending) return; + isSending = true; + string url = "http://9377-big-data.sbk-h5.com:8600/users/addrank"; + + Dictionary<string, object> keyValues = new Dictionary<string, object>(); + keyValues.Add("username", nickname); + keyValues.Add("nickname", nickname); + keyValues.Add("score", score); + keyValues.Add("level", level); + keyValues.Add("extra", waveInfo); + + //string v = PostWebRequest(url, data.ToJson()); + //LoadPostTxt(v); + //Debug.Log(v); + //byte[] postBytes = System.Text.Encoding.Default.GetBytes(data.ToJson()); + //StartCoroutine(Post(url, postBytes)); + + HttpHelper.Request(this, url, HttpHelper.MethodType.POST, keyValues, delegate (object value) + { + if (value != null) + LoadPostTxt(value.ToString()); + + }, HttpHelper.DownloadHanlderType.kHttpTEXT); + + } + + IEnumerator Post(string url, byte[] postBytes) + { + UnityWebRequest request = UnityWebRequest.Post(url, "POST"); + request.uploadHandler = new UploadHandlerRaw(postBytes); + request.downloadHandler = new DownloadHandlerBuffer(); + request.SetRequestHeader("Content-Type", "application/json"); + yield return request.SendWebRequest(); + + if (request.isDone) + { + LoadPostTxt(request.downloadHandler.text); + } + else + { + + } + } + + private void LoadPostTxt(string value) + { + Debug.Log(value); + loginData = JsonMapper.ToObject(value); + if (loginData["error"].ToString() != "0") + { + Debug.Log("失败了"); + } + else if (loginData["msg"].ToString() == "OK") + { + Debug.Log("成功了当前score:" + score); + //SendGet(); + } + + isSending = false; + } + + /// <summary> + /// 下载排行榜 + /// </summary> + private void SendGet() + { + Debug.Log("开始下载排行榜"); + string url = "http://9377-big-data.sbk-h5.com:8600/users/getrank";//9377-big-data.sbk-h5.com:8600/users/getrank?username=0001&limit=100 + Dictionary<string, object> keyValues = new Dictionary<string, object>(); + keyValues.Add("username", imei0); + keyValues.Add("limit", 100); + + HttpHelper.Request(this, url, HttpHelper.MethodType.GET, keyValues, delegate (object value) + { + if (value != null) + LoadGetTxt(value.ToString()); + }, HttpHelper.DownloadHanlderType.kHttpTEXT); + + } + + private void LoadGetTxt(string value) + { + JsonData getData = JsonMapper.ToObject(value); + int myrank = int.Parse(getData["myrank"].ToString()); + + JsonData rank = getData["rank"]; + + List<HttpGetInfo> allHttpGetInfoLis = new List<HttpGetInfo>(); + HttpGetInfo info; + foreach (JsonData item in rank) + { + info = new HttpGetInfo(item); + allHttpGetInfoLis.Add(info); + } + + foreach (HttpGetInfo item in allHttpGetInfoLis) + { + + Debug.LogError(item.extra); + Debug.LogError(item.nickname); + Debug.LogError(item.waveInfo); + + // if (item.extra.ContainsKey("waveInfo")) + // { + // Debug.LogError(item.extra["waveInfo"]); + // } + // string a = item.extra.ToJson(); + // Debug.LogError(a); + // JsonData tmpData = JsonMapper.ToObject(a); + // Debug.LogError(tmpData); + + // JsonData tmpData = item.extra; + // if (tmpData != null) + // { + // if (tmpData.Count > 0) + // } + // if (item.extra.ContainsKey("waveInfo")) + // { + // Debug.LogError(item.extra["waveInfo"].ToString()); + // } + Debug.Log($"item.username:{item.username} item.nickname:{item.nickname} item.score:{item.score} item.create_time:{item.create_time}"); + } + } + + + void TestFinalPanel() + { + GameObject a = Resources.Load<GameObject>("UI/Final/FinalPanel"); + GameObject go = Instantiate(a, transform); + FinalPanel panelUI = go.GetComponent<FinalPanel>(); + panelUI.SetData("1关 1波", 101); + //panelUI.SetPlayEffectAC(null); + } + private void OnEnable() { - EventCenter.Ins.Add((int)KTGMGemClient.EventType.AddCard, AddCard); - EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFireLv2, CreateFireLv2); - EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFirstWave, CreateFirstWave); - EventCenter.Ins.Add((int)KTGMGemClient.EventType.RestartWave, RestartWave); - EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.AddGold, AddGold); - EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateWaterLv1, CreateWaterLv1); - EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateSecondWave, CreateSecondWave); - EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillRelease, SkillRelease); - + //EventCenter.Ins.Add((int)KTGMGemClient.EventType.AddCard, AddCard); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFireLv2, CreateFireLv2); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFirstWave, CreateFirstWave); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.RestartWave, RestartWave); + // EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.AddGold, AddGold); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateWaterLv1, CreateWaterLv1); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateSecondWave, CreateSecondWave); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillRelease, SkillRelease); + // EventCenter.Ins.Add((int)KTGMGemClient.EventType.GuideFinish, GuideFinish); } @@ -64,7 +266,7 @@ Debug.Log("出怪完毕,等待火元素完成第一次充能"); yield return new WaitForSeconds(1f); Debug.Log("火元素充能效果结束,暂停出怪"); - EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ChargingEnd); + //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ChargingEnd); } @@ -94,7 +296,7 @@ private void GetOneTowerPos() { Debug.Log("解锁了第一排第二个塔位"); - EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GetOneTowerPos); + //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GetOneTowerPos); } @@ -135,4 +337,12 @@ } + private void GuideFinish() + { + + Debug.Log("新手引导流程结束"); + } + } + + -- Gitblit v1.9.1