private void UpdateAvatarState(string avatarCode, GalleryAvatarState state) { var avatar = GetAvatar(avatarCode); avatar.state = state; UpdateAvatarPreview(avatarCode, state); }
/// <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); }