private void UpdateAvatarState(string avatarCode, GalleryAvatarState state)
        {
            var avatar = GetAvatar(avatarCode);

            avatar.state = state;
            UpdateAvatarPreview(avatarCode, state);
        }
Beispiel #2
0
        /// <summary>
        /// Determinates state of the avatar. It simply checks existence of the mesh and texture files.
        /// </summary>
        private GalleryAvatarState GetAvatarState(string avatarCode)
        {
            OfflineAvatarProvider offlineAvatarProvider = avatarProvider as OfflineAvatarProvider;

            GalleryAvatarState avatarState = GalleryAvatarState.UNKNOWN;

            var session = offlineAvatarProvider.Session;

            if (session.IsAvatarCalculating(avatarCode))
            {
                avatarState = GalleryAvatarState.GENERATING;
            }
            else
            {
                string meshFilePath    = AvatarSdkMgr.Storage().GetAvatarFilename(avatarCode, AvatarFile.MESH_PLY);
                string textureFilePath = AvatarSdkMgr.Storage().GetAvatarFilename(avatarCode, AvatarFile.TEXTURE);
                if (File.Exists(meshFilePath) && File.Exists(textureFilePath))
                {
                    avatarState = GalleryAvatarState.COMPLETED;
                }
                else
                {
                    avatarState = GalleryAvatarState.FAILED;
                }
            }

            return(avatarState);
        }
        private void UpdateAvatarPreview(string avatarCode, GalleryAvatarState state)
        {
            if (!avatarPreviews.ContainsKey(avatarCode))
            {
                return;
            }

            var preview = avatarPreviews[avatarCode];

            preview.UpdatePreview(avatarCode, state);
        }
        public void InitPreview(GallerySample g, string code, GalleryAvatarState state, bool customizationEnabled)
        {
            Debug.LogFormat("Initializing preview...");

            avatarCode             = code;
            gallery                = g;
            isCustomizationEnabled = customizationEnabled;
            AvatarSdkMgr.SpawnCoroutine(UpdateImageAsync());

            editButton.gameObject.SetActive(customizationEnabled);
            avatarName.gameObject.SetActive(customizationEnabled);

            UpdatePreview(avatarCode, state);
        }
        private GalleryAvatarState GetAvatarState(AvatarData avatarData)
        {
            GalleryAvatarState avatarState = GalleryAvatarState.UNKNOWN;

            // check if calculation failed on the server
            if (Strings.BadFinalStates.Contains(avatarData.status))
            {
                avatarState = GalleryAvatarState.FAILED;
            }
            else
            {
                if (Strings.GoodFinalStates.Contains(avatarData.status))
                {
                    avatarState = GalleryAvatarState.COMPLETED;
                }
                else
                {
                    // not failed server status, but not completed either - this means avatar is still on the server
                    avatarState = GalleryAvatarState.GENERATING;
                }
            }
            return(avatarState);
        }
        /// <summary>
        /// Update fields in UI when avatar progress is changed.
        /// </summary>
        public void UpdatePreview(string avatarCode, GalleryAvatarState state)
        {
            code.text   = string.Format("Code: {0}...", avatarCode.Substring(0, 24));
            status.text = string.Format("State: {0}", state);

            editButton.gameObject.SetActive(false);
            showButton.gameObject.SetActive(false);
            deleteButton.gameObject.SetActive(state != GalleryAvatarState.GENERATING);

            if (state == GalleryAvatarState.COMPLETED)
            {
                if (isCustomizationEnabled)
                {
                    editButton.gameObject.SetActive(true);
                }
                showButton.gameObject.SetActive(true);
            }

            if (state != GalleryAvatarState.GENERATING)
            {
                progress.text = string.Empty;
            }
        }
 /// <summary>
 /// Initialize avatar preview that is displayed in gallery.
 /// Avatar preview slightly different for Cloud and Offline SDks
 /// </summary>
 protected virtual void InitAvatarPreview(AvatarPreview preview, string avatarCode, GalleryAvatarState avatarState)
 {
     preview.InitPreview(this, avatarCode, avatarState, false);
 }
        protected override void InitAvatarPreview(AvatarPreview preview, string avatarCode, GalleryAvatarState avatarState)
        {
            preview.InitPreview(this, avatarCode, avatarState, true);

            GalleryAvatarCloud avatar = loadedAvatars.FirstOrDefault(a => string.Compare(a.code, avatarCode) == 0) as GalleryAvatarCloud;

            preview.UpdateAvatarName(avatar.avatarData.name);
        }