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); }