private IEnumerator GetAllAvatarsRoutine(int maxItems, AsyncRequest <GalleryAvatar[]> request) { var avatarsRequest = avatarProvider.GetAllAvatarsAsync(maxItems); yield return(AwaitRoutine(avatarsRequest, null)); if (avatarsRequest.IsError) { yield break; } GalleryAvatar[] avatars = new GalleryAvatar[avatarsRequest.Result.Length]; for (int i = 0; i < avatars.Length; i++) { string avatarCode = avatarsRequest.Result[i]; string avatarName = ReadAvatarNameByCode(avatarCode); avatars[i] = new GalleryAvatar() { name = avatarName, code = avatarCode, state = GetAvatarState(avatarCode) }; } request.Result = avatars; request.IsDone = true; }
private void OnDeleteAvatarButton(GalleryAvatar avatar) { if (EditorUtility.DisplayDialog("Delete avatar?", "Are you sure you want to delete " + avatar.code + "?", "Yes", "No")) { EditorRunner.instance.Run(DeleteAvatarRoutine(avatar)); } }
/// <summary> /// Requests all created avatars that created by current user and determinates states for them /// </summary> private IEnumerator GetAllAvatarsFunc(int maxItems, AsyncRequest <GalleryAvatar[]> request) { Connection connection = (avatarProvider as CloudAvatarProvider).Connection; var avatarsRequest = connection.GetAvatarsAsync(maxItems); yield return(Await(avatarsRequest, null)); if (avatarsRequest.IsError) { yield break; } GalleryAvatar[] avatars = new GalleryAvatar[avatarsRequest.Result.Length]; for (int i = 0; i < avatars.Length; i++) { AvatarData avatarData = avatarsRequest.Result[i]; avatars[i] = new GalleryAvatarCloud() { code = avatarData.code, state = GetAvatarState(avatarData), avatarData = avatarData }; } request.Result = avatars; request.IsDone = true; }
/// <summary> /// Delete local avatar files and request server to delete all data permanently. Can't undo this. /// </summary> private IEnumerator DeleteAvatarRoutine(GalleryAvatar avatar) { GameObject sceneAvatar = GameObject.Find(avatar.name); if (sceneAvatar != null && sceneAvatar.GetComponent <AvatarInfo>() != null) { DestroyImmediate(sceneAvatar); } var deleteRequest = avatarProvider.DeleteAvatarAsync(avatar.code); yield return(deleteRequest); yield return(UpdateAvatarListRoutine()); }