private IEnumerator CreatePrefabProcess(string prefabName)
    {
        Debug.Log("Start loading process for " + prefabName);

        if (_prefabsResourceHolder == null)
        {
            _prefabsResourceHolder = new PrefabsResourceHolder();
        }

        var prefabLoadingOperation = resourceStorage.LoadResource <GameObject>(_prefabsResourceHolder, prefabName);

        yield return(prefabLoadingOperation);

        Debug.Log("Done loading process for " + prefabName + " isResourceExist:{prefabLoadingOperation.Resource != null}");

        if (prefabLoadingOperation.Resource == null)
        {
            // OnPressUnloadBundle();
            yield break;
        }

        var newInstance = Instantiate(prefabLoadingOperation.Resource);

        newInstance.name = prefabName;
        goInstances.Add(newInstance);
    }
    private IEnumerator InitProcess()
    {
        Debug.Log("Start Init process");

        resourceStorage = new ResourceStorage(100);

        var manifestLoader = new WebRequestLoader(coroutineManager);

        manifestLoader.RegisterResourceCreator(new StringDataCreator());

        UnityResourceFromBundleLoader resFromBundlesLoader = new UnityResourceFromBundleLoader(coroutineManager);
        WebRequestBundlesLoader       bundlesLoader        = new WebRequestBundlesLoader(serverStaticPath, coroutineManager);

        resourceStorage.RegisterResourceLoader(manifestLoader);
        resourceStorage.RegisterResourceLoader(resFromBundlesLoader);
        resourceStorage.RegisterResourceLoader(bundlesLoader);


        //Load Manifest
        ManifestResourceHolder manifestHolder = new ManifestResourceHolder();
        var manifestLoadingOperation          = resourceStorage.LoadResource <string>(manifestHolder, Path.Combine(serverStaticPath, manifestName));

        yield return(manifestLoadingOperation);

        Debug.Log("Manifest loaded: " + manifestLoadingOperation.Resource);

        var jsonSerializer =
            new JsonSerializer(new JsonSerializerSettings {
            Formatting = Formatting.Indented
        }, Encoding.UTF8);
        var manifestAsJson = jsonSerializer.DeserializeString <AssetBundleManifest>(manifestLoadingOperation.Resource);

        bundlesLoader.Manifest.AddManifestPart(manifestAsJson);

        resourceStorage.ReleaseAllOwnerResourcesFromCache(manifestHolder);

        _prefabsResourceHolder = new PrefabsResourceHolder();
        Debug.Log("Init process pass");
    }
 public void OnPressReleasePrefabs()
 {
     _prefabsResourceHolder = null;
     //resourceStorage.ReleaseAllOwnerResourcesFromCache(_prefabsResourceHolder);
 }