Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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;
        }
Esempio n. 4
0
        /// <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());
        }