public override AsyncRequest <AvatarResources> GetResourcesAsync(AvatarResourcesSubset resourcesSubset, PipelineType pipelineType)
        {
            var request = new AsyncRequest <AvatarResources>(AvatarSdkMgr.Str(Strings.GettingResourcesList));

            AvatarSdkMgr.SpawnCoroutine(GetResourcesFunc(resourcesSubset, pipelineType, request));
            return(request);
        }
        private IEnumerator GetResourcesFunc(AvatarResourcesSubset resourcesSubset, PipelineType pipelineType, AsyncRequest <AvatarResources> request)
        {
            if (avatarResourcesCache[pipelineType].ContainsKey(resourcesSubset))
            {
                request.Result = avatarResourcesCache[pipelineType][resourcesSubset];
                request.IsDone = true;
            }
            else
            {
                var resourcesWebRequest = connection.GetResourcesAsync(pipelineType, resourcesSubset);
                yield return(resourcesWebRequest);

                if (resourcesWebRequest.IsError)
                {
                    Debug.LogError(resourcesWebRequest.ErrorMessage);
                    request.SetError(resourcesWebRequest.ErrorMessage);
                    yield break;
                }
                AvatarResources avatarResources = GetResourcesFromJson(resourcesWebRequest.Result);
                avatarResourcesCache[pipelineType].Add(resourcesSubset, avatarResources);
                request.IsDone = true;
                request.Result = avatarResources;
            }
        }
 public abstract AsyncRequest <AvatarResources> GetResourcesAsync(AvatarResourcesSubset resourcesSubset, PipelineType pipelineType);
Esempio n. 4
0
        /// <summary>
        /// Request to get available resources for the pipeline
        /// </summary>
        public virtual AsyncWebRequest <string> GetResourcesAsync(PipelineType pipelineType, AvatarResourcesSubset resourcesSubset)
        {
            string subsetStr = "available";

            if (resourcesSubset == AvatarResourcesSubset.DEFAULT)
            {
                subsetStr = "default";
            }

            var url = GetUrl("resources", subsetStr, pipelineType.GetPipelineTypeName());

            url = UrlWithParams(url, "pipeline_subtype", pipeline_subtype);
            var request = new AsyncWebRequest <string>(Strings.GettingResourcesList);

            AvatarSdkMgr.SpawnCoroutine(AwaitStringDataAsync(() => HttpGet(url), request));
            return(request);
        }