/// <summary>
        /// Applies the changes in avatar name and description. Updates this avatar on the server.
        /// </summary>
        /// <returns></returns>
        private IEnumerator EditAvatar()
        {
            CloudAvatarProvider cloudAvatarProvider = avatarProvider as CloudAvatarProvider;
            var avatarEdit = editPanel.GetComponent <AvatarEdit>();

            yield return(Await(
                             cloudAvatarProvider.Connection.EditAvatarAsync(avatarToEdit, avatarEdit.nameField.text, avatarEdit.descriptionField.text),
                             avatarToEdit.code
                             ));

            yield return(UpdateAvatarList());

            editPanel.SetActive(false);
            avatarToEdit = null;
        }
        /// <summary>
        /// Shows panel to edit name and description of the avatar
        /// </summary>
        private IEnumerator ShowEditPanel(string avatarCode)
        {
            CloudAvatarProvider cloudAvatarProvider = avatarProvider as CloudAvatarProvider;
            var avatarRequest = cloudAvatarProvider.Connection.GetAvatarAsync(avatarCode);

            yield return(avatarRequest);

            if (avatarRequest.IsError)
            {
                yield break;
            }

            avatarToEdit = avatarRequest.Result;
            var avatarEdit = editPanel.GetComponent <AvatarEdit>();

            avatarEdit.nameField.text        = avatarToEdit.name;
            avatarEdit.descriptionField.text = avatarToEdit.description;
            editPanel.SetActive(true);
        }
Example #3
0
        private IEnumerator Initialize()
        {
            if (!AvatarSdkMgr.IsInitialized)
            {
                AvatarSdkMgr.Init(stringMgr: new DefaultStringManager(), storage: new DefaultPersistentStorage(), sdkType: SdkType.Cloud);
            }

            if (avatarProvider == null)
            {
                avatarProvider = new CloudAvatarProvider();
            }
            connection = avatarProvider.Connection;

            var imageItems = sampleImagesPanel.GetComponentsInChildren <ImageItem>();

            foreach (ImageItem item in imageItems)
            {
                item.imageSelectedHandler = HandleSelectedImage;
            }

            if (createdAvatar != null)
            {
                UpdateSelectedImage(selectedImageBytes);
                UpdateAvatarState(avatarState, PipelineType.HEAD);
            }
            image.gameObject.SetActive(true);

            // initialize provider
            if (!avatarProvider.Connection.IsAuthorized)
            {
                yield return(avatarProvider.InitializeAsync());

                if (!avatarProvider.Connection.IsAuthorized)
                {
                    Debug.LogError("Authentication failed!");
                    yield break;
                }
            }
        }