wangguan
2020-12-03 19a439d778c8ddc0cefb71d341da4e7329911d57
Assets/Scripts/Guide/TestButton.cs
@@ -3,6 +3,12 @@
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;
@@ -20,28 +26,216 @@
        // 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 += 100;
            SendPost(score.ToString(), score, 1, "成绩 25关 3波");
        }
        if (GUILayout.Button("SendGet", GUILayout.Width(150), GUILayout.Height(70)))
        {
            SendGet();
        }
        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>();
        foreach (JsonData item in rank)
        {
            allHttpGetInfoLis.Add(
                new HttpGetInfo
                {
                    id = int.Parse(item["id"].ToString()),
                    username = item["username"].ToString(),
                    nickname = item["nickname"].ToString(),
                    score = int.Parse(item["score"].ToString()),
                    level = int.Parse(item["level"].ToString()),
                    extra = item["nickname"],
                    waveInfo = item["extra"].ToString(),
                    create_time = int.Parse(item["create_time"].ToString()),
                }
            );
        }
        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 go = Instantiate(Resources.Load<GameObject>("UI/Final/FinalPanel"), transform);
        FinalPanel panelUI = go.GetComponent<FinalPanel>();
        panelUI.SetData("成绩 25关 3波", 789220);
        panelUI.SetData("25关 3波", 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.GuideFinish, GuideFinish);
        //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);
    }
@@ -75,7 +269,7 @@
        Debug.Log("出怪完毕,等待火元素完成第一次充能");
        yield return new WaitForSeconds(1f);
        Debug.Log("火元素充能效果结束,暂停出怪");
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ChargingEnd);
        //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ChargingEnd);
    }
@@ -105,7 +299,7 @@
    private void GetOneTowerPos()
    {
        Debug.Log("解锁了第一排第二个塔位");
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GetOneTowerPos);
        //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GetOneTowerPos);
    }
@@ -153,3 +347,15 @@
    }
}
public class HttpGetInfo
{
    public int id;
    public string username;
    public string nickname;
    public int score;
    public int level;
    public JsonData extra;
    public string waveInfo;
    public int create_time;
}