internal void UnloadAssets(UnloadAssets payload, Action onCompleteCallback) { _app.AssetManager.Unload(payload.ContainerId); ActiveContainers.Remove(payload.ContainerId); onCompleteCallback?.Invoke(); }
internal void UnloadAssets(UnloadAssets payload, Action onCompleteCallback) { _app.AssetCache.UncacheAssetsAndDestroy(payload.ContainerId); ActiveContainers.Remove(payload.ContainerId); onCompleteCallback?.Invoke(); }
internal void UnloadAssets(UnloadAssets payload, Action onCompleteCallback) { foreach (var asset in MREAPI.AppsAPI.AssetCache.UncacheAssets(payload.ContainerId)) { // workaround: unload meshes implicitly if (asset is GameObject prefab) { var filters = prefab.GetComponentsInChildren <MeshFilter>(); foreach (var f in filters) { UnityEngine.Object.Destroy(f.sharedMesh); } } UnityEngine.Object.Destroy(asset); } onCompleteCallback?.Invoke(); }