public void LoadUsers() { Social.LoadUsers(_userIds.ToArray(), users => { if(users.Length > 0) { for(int j = 0 ; j < users.Length ; j++) { userNameTxt[j].text = users[j].userName; pointsTxt[j].text = _userPoints[j]; } StartCoroutine(KeepCheckingAvatar(users , placesImg , users.Length)); } else { _deactivateLoading = true; } }); } private IEnumerator KeepCheckingAvatar(IUserProfile[] user, Image[] image, int userSize) { float secondsOfTrying = 20; float secondsPerAttempt = 1f; while (secondsOfTrying > 0) { switch(userSize) { case 1: if (user[0].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); _deactivateLoading = true; } break; case 2: if (user[0].image != null && user[1].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); _deactivateLoading = true; } break; case 3: if (user[0].image != null && user[1].image != null && user[2].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); image[2].sprite = Sprite.Create(user[2].image, new Rect(0,0,user[2].image.width,user[2].image.height), Vector2.zero); _deactivateLoading = true; } break; case 4: if (user[0].image != null && user[1].image != null && user[2].image != null && user[3].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); image[2].sprite = Sprite.Create(user[2].image, new Rect(0,0,user[2].image.width,user[2].image.height), Vector2.zero); image[3].sprite = Sprite.Create(user[3].image, new Rect(0,0,user[3].image.width,user[3].image.height), Vector2.zero); _deactivateLoading = true; } break; case 5: if (user[0].image != null && user[1].image != null && user[2].image != null && user[3].image != null && user[4].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); image[2].sprite = Sprite.Create(user[2].image, new Rect(0,0,user[2].image.width,user[2].image.height), Vector2.zero); image[3].sprite = Sprite.Create(user[3].image, new Rect(0,0,user[3].image.width,user[3].image.height), Vector2.zero); image[4].sprite = Sprite.Create(user[4].image, new Rect(0,0,user[4].image.width,user[4].image.height), Vector2.zero); _deactivateLoading = true; } break; case 6: if (user[0].image != null && user[1].image != null && user[2].image != null && user[3].image != null && user[4].image != null && user[5].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); image[2].sprite = Sprite.Create(user[2].image, new Rect(0,0,user[2].image.width,user[2].image.height), Vector2.zero); image[3].sprite = Sprite.Create(user[3].image, new Rect(0,0,user[3].image.width,user[3].image.height), Vector2.zero); image[4].sprite = Sprite.Create(user[4].image, new Rect(0,0,user[4].image.width,user[4].image.height), Vector2.zero); image[5].sprite = Sprite.Create(user[5].image, new Rect(0,0,user[5].image.width,user[5].image.height), Vector2.zero); _deactivateLoading = true; } break; case 7: if (user[0].image != null && user[1].image != null && user[2].image != null && user[3].image != null && user[4].image != null && user[5].image != null && user[6].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); image[2].sprite = Sprite.Create(user[2].image, new Rect(0,0,user[2].image.width,user[2].image.height), Vector2.zero); image[3].sprite = Sprite.Create(user[3].image, new Rect(0,0,user[3].image.width,user[3].image.height), Vector2.zero); image[4].sprite = Sprite.Create(user[4].image, new Rect(0,0,user[4].image.width,user[4].image.height), Vector2.zero); image[5].sprite = Sprite.Create(user[5].image, new Rect(0,0,user[5].image.width,user[5].image.height), Vector2.zero); image[6].sprite = Sprite.Create(user[6].image, new Rect(0,0,user[6].image.width,user[6].image.height), Vector2.zero); _deactivateLoading = true; } break; case 8: if (user[0].image != null && user[1].image != null && user[2].image != null && user[3].image != null && user[4].image != null && user[5].image != null && user[6].image != null && user[7].image != null) { image[0].sprite = Sprite.Create(user[0].image, new Rect(0,0,user[0].image.width,user[0].image.height), Vector2.zero); image[1].sprite = Sprite.Create(user[1].image, new Rect(0,0,user[1].image.width,user[1].image.height), Vector2.zero); image[2].sprite = Sprite.Create(user[2].image, new Rect(0,0,user[2].image.width,user[2].image.height), Vector2.zero); image[3].sprite = Sprite.Create(user[3].image, new Rect(0,0,user[3].image.width,user[3].image.height), Vector2.zero); image[4].sprite = Sprite.Create(user[4].image, new Rect(0,0,user[4].image.width,user[4].image.height), Vector2.zero); image[5].sprite = Sprite.Create(user[5].image, new Rect(0,0,user[5].image.width,user[5].image.height), Vector2.zero); image[6].sprite = Sprite.Create(user[6].image, new Rect(0,0,user[6].image.width,user[6].image.height), Vector2.zero); image[7].sprite = Sprite.Create(user[7].image, new Rect(0,0,user[7].image.width,user[7].image.height), Vector2.zero); _deactivateLoading = true; } break; } secondsOfTrying -= secondsPerAttempt; debug.text += userSize.ToString(); yield return new WaitForSeconds(secondsPerAttempt); } }