IEnumerator GetTexture(RailsUser user, string uri) { UnityWebRequest request = UnityWebRequestTexture.GetTexture(uri); yield return(request.Send()); if (request.isNetworkError) { Debug.Log(request.error); } else { Texture2D temp = (Texture2D)((DownloadHandlerTexture)request.downloadHandler).texture; TextureScale.Bilinear(temp, 526, 526); user.avatar = Sprite.Create(temp, new Rect(0, 0, temp.width, temp.height), new Vector2(0.5f, 0.5f)); } }
IEnumerator UpdateRoomRequest(string uri, string bodyJsonString) { var request = new UnityWebRequest(uri, "POST"); byte[] bodyRaw = new System.Text.UTF8Encoding().GetBytes(bodyJsonString); request.uploadHandler = (UploadHandler) new UploadHandlerRaw(bodyRaw); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.Send()); // process results var N = JSON.Parse(request.downloadHandler.text); //BUILD CURRENT ROOM if (currentRoom.last_updated != N["last_updated"]) { currentRoom.last_updated = N["last_updated"]; currentRoom.chancellor_id = N["room"]["chancellor_id"].AsInt; currentRoom.president_id = N["room"]["president_id"].AsInt; currentRoom.disorder_count = N["room"]["disorder_count"].AsInt; currentRoom.fascist_policy_count = N["room"]["fascist_policy_count"].AsInt; currentRoom.liberal_policy_count = N["room"]["liberal_policy_count"].AsInt; } if (N["players"].Count > currentRoom.users.Count)//a new user joined { List <RailsUser> newUsers = new List <RailsUser>(); for (int k = 0; k < N["players"].Count; k++) { RailsUser newUser = new RailsUser(); newUser.name = N["players"][k]["name"]; newUser.id = N["players"][k]["id"]; StartCoroutine(GetTexture(newUser, (url + N["players"][k]["avatar"]))); newUsers.Add(newUser); } currentRoom.users = newUsers; } }