Esempio n. 1
0
        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();
 }