コード例 #1
0
    IEnumerator IGetPlayersHighScores(int days)
    {
        string s = www + "/" + playersName;

        if (days != 0)
        {
            s += "?days=" + days;
        }

        UnityWebRequest webRequest = UnityWebRequest.Get(s);

        webRequest.SetRequestHeader("unityKey", "unity1234");
        yield return(webRequest.SendWebRequest());

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            Debug.Log(webRequest.error);
        }
        else
        {
            string a = webRequest.downloadHandler.text;
            //returned array have to be wrapped to variable in order to use JsonUtility convert
            ScoreEntryArray sArray = JsonUtility.FromJson <ScoreEntryArray>("{\"entries\":" + a.ToString() + "}");
            //Unityn ankea FromJson: 1) lista pitää olla wrapper luokassa
            // 2) ko. luokassa EI voi olla get/set tai ei osaa toimia
            FillInScoreList(sArray.entries.ToArray(), 1);
        }
    }
コード例 #2
0
    public IEnumerator ISendResult()
    {
        //tämä ei toimi
        NewEntry n = new NewEntry
        {
            name  = playersName,
            score = playersScore
        };
        string entryJson = JsonUtility.ToJson(n);

        byte[]  bytes = Encoding.UTF8.GetBytes(entryJson);
        WWWForm form  = new WWWForm();

        form.AddBinaryData("body", bytes);
        UnityWebRequest req = UnityWebRequest.Post(www, form);

        req.SetRequestHeader("Content-Type", "application/json");
        req.SetRequestHeader("UnityKey", "unity1234");
        req.uploadHandler             = new UploadHandlerRaw(bytes);
        req.uploadHandler.contentType = "application/json";

        yield return(req.SendWebRequest());

        if (req.isNetworkError || req.isHttpError)
        {
            Debug.Log(req.error);
        }
        else
        {
            string      a      = req.downloadHandler.text;
            EntryResult result = JsonUtility.FromJson <EntryResult>(a);
            if (result.ranking > 0)
            {
                madeItOrNotText.text = "YOU MADE IT TO THE LIST";
                int startFrom;
                if (result.ranking < 10)
                {
                    startFrom = 1;
                }
                else
                {
                    startFrom = result.ranking - 4;
                }

                string          searchUrl  = www + "?slice=" + startFrom;
                UnityWebRequest webRequest = UnityWebRequest.Get(searchUrl);
                webRequest.SetRequestHeader("unityKey", "unity1234");

                yield return(webRequest.SendWebRequest());

                if (webRequest.isNetworkError || webRequest.isHttpError)
                {
                    Debug.Log(webRequest.error);
                }
                else
                {
                    string          entryList = webRequest.downloadHandler.text;
                    ScoreEntryArray sArray    = JsonUtility.FromJson <ScoreEntryArray>("{\"entries\":" + entryList.ToString() + "}");
                    FillInScoreListWithEntry(sArray.entries.ToArray(), startFrom, result);
                }
            }
            else
            {
                madeItOrNotText.text = "Bummer... Not good enough";
                HighScoresButtonPressed();
            }
        }
    }