/// <summary> /// Routine for uploading a highscore to Firebase. /// </summary> private IEnumerator UploadNewHighscoreRoutine(string username, int score) { HighscoreDisplayHelper displayHelper = FindObjectOfType <HighscoreDisplayHelper>(); string url = Config.instance.GetConfig()["firebase"]; JSONObject body = new JSONObject(); body.Add("date", System.DateTime.Now.ToString()); body.Add("name", username); body.Add("score", score); UnityWebRequest request = UnityWebRequest.Post(url, "POST"); byte[] bytes = Encoding.UTF8.GetBytes(body.ToString()); request.uploadHandler = new UploadHandlerRaw(bytes); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.result != UnityWebRequest.Result.Success) { Debug.Log("Error uploading: " + request.downloadHandler.text); displayHelper.ClearEntries(); displayHelper.DisplayError("Could not upload score. Please try again later.\n\n" + request.downloadHandler.text); } else { Debug.Log("Upload successful! " + request.responseCode); PlayerPrefs.SetInt(Constants.ALREADY_UPLOADED_KEY, 1); } }
private IEnumerator DownloadAndDisplayHighscores() { HighscoreDisplayHelper displayHelper = FindObjectOfType <HighscoreDisplayHelper>(); if (Application.internetReachability == NetworkReachability.NotReachable) { displayHelper.DisplayError(Ui.NO_INTERNET); yield break; } string url = Config.instance.GetConfig()["firebase"]; UnityWebRequest request = UnityWebRequest.Get(url); yield return(request.SendWebRequest()); if (request.result != UnityWebRequest.Result.Success) { Debug.Log("Error downloading: " + request.downloadHandler.text); displayHelper.DisplayError(Ui.HIGHSCORE_DOWNLOAD_ERROR(request.downloadHandler.text)); } else { JSONNode json = JSON.Parse(request.downloadHandler.text); List <Highscore> highscores = new List <Highscore>(); foreach (JSONNode i in json) { highscores.Add(new Highscore(i["name"], i["score"], i["distance"], i["ship"], i["vrMode"], i["date"])); } highscores.Sort((p1, p2) => p2.GetScore().CompareTo(p1.GetScore())); displayHelper.DisplayHighscores(highscores); } }
private IEnumerator UploadHighscoreRoutine(string username) { bool usedVR = PlayerPrefs.GetInt(PlayerPrefKeys.WAS_VR_HIGHSCORE).Equals(Constants.YES); string shipName = ShopManager.instance.GetSelectedShipData().GetShipName(); string url = Config.instance.GetConfig()["firebase"]; JSONObject body = new JSONObject(); body.Add("date", System.DateTime.Now.ToString()); body.Add("distance", GetBestDistance()); body.Add("name", username); body.Add("score", GetLocalHighscore()); body.Add("ship", shipName); body.Add("vrMode", usedVR); UnityWebRequest request = UnityWebRequest.Post(url, "POST"); byte[] bytes = Encoding.UTF8.GetBytes(body.ToString()); request.uploadHandler = new UploadHandlerRaw(bytes); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.result != UnityWebRequest.Result.Success) { Debug.Log("Error uploading: " + request.downloadHandler.text); HighscoreDisplayHelper display = FindObjectOfType <HighscoreDisplayHelper>(); display.ClearEntries(); display.DisplayError(Ui.HIGHSCORE_UPLOAD_ERROR(request.downloadHandler.text)); } else { Debug.Log("Upload successful! " + request.result); PlayerPrefs.SetInt(PlayerPrefKeys.UPLOADED, Constants.YES); PlayerPrefs.SetInt(PlayerPrefKeys.NEW_HIGHSCORE, Constants.NO); PlayerPrefs.SetInt(PlayerPrefKeys.NEW_DISTANCE, Constants.NO); AchievementManager.instance.UnlockAchievement(AchievementIds.UPLOAD_HIGHSCORE); NotificationIcon[] icons = FindObjectsOfType <NotificationIcon>(); foreach (NotificationIcon icon in icons) { icon.TurnOff(); } } }
/// <summary> /// Routine for uploading a highscore to Dreamlo. /// </summary> private IEnumerator UploadHighscoreRoutine(string username) { UnityWebRequest request = UnityWebRequest.Post(Constants.DREAMLO_URL + Constants.DREAMLO_PRIVATE_CODE + "/add/" + username + "/" + GetLocalHighscore(), ""); yield return(request.SendWebRequest()); if (!request.downloadHandler.text.StartsWith("ERROR")) { Debug.Log("Upload successful! " + request.responseCode); PlayerPrefs.SetInt(Constants.UPLOADED_KEY, Constants.YES); } else { Debug.Log("Error uploading: " + request.downloadHandler.text); HighscoreDisplayHelper display = FindObjectOfType <HighscoreDisplayHelper>(); display.ClearEntries(); display.DisplayError("Could not upload score. Please try again later.\n\n" + request.downloadHandler.text); } }
/// <summary> /// Downloads the highscores from Firebase. /// </summary> private IEnumerator DownloadHighscoresRoutine() { HighscoreDisplayHelper displayHelper = FindObjectOfType <HighscoreDisplayHelper>(); if (Application.internetReachability == NetworkReachability.NotReachable) { displayHelper.DisplayError("No internet connection."); yield break; } string url = Config.instance.GetConfig()["firebase"]; UnityWebRequest request = UnityWebRequest.Get(url); yield return(request.SendWebRequest()); if (request.result != UnityWebRequest.Result.Success) { Debug.Log("Error downloading: " + request.downloadHandler.text); displayHelper.DisplayError("Could not download highscores. Please try again later.\n\n" + request.downloadHandler.text); } else { JSONNode json = JSON.Parse(request.downloadHandler.text); List <Highscore> highscores = new List <Highscore>(); foreach (JSONNode i in json) { highscores.Add(new Highscore(i["name"], i["score"], i["date"])); } highscores.Sort((p1, p2) => p2.GetScore().CompareTo(p1.GetScore())); displayHelper.DisplayHighscores(highscores); } }