/// <summary> /// 资源回收(卸载引用计数为零的资源) /// </summary> public static void UnloadUnusedAssets() { if (_isInitialize) { AssetSystem.Update(); AssetSystem.UnloadUnusedAssets(); } }
internal static void UnloadSubScene(ProviderBase provider) { string providerGUID = provider.MainAssetInfo.ProviderGUID; if (_sceneHandles.ContainsKey(providerGUID) == false) { throw new Exception("Should never get here !"); } // 释放子场景句柄 _sceneHandles[providerGUID].ReleaseInternal(); _sceneHandles.Remove(providerGUID); // 卸载未被使用的资源(包括场景) AssetSystem.UnloadUnusedAssets(); // 检验子场景是否销毁 if (provider.IsDestroyed == false) { throw new Exception("Should never get here !"); } }
internal static void UnloadAllScene() { // 释放所有场景句柄 foreach (var valuePair in _sceneHandles) { valuePair.Value.ReleaseInternal(); } _sceneHandles.Clear(); // 卸载未被使用的资源(包括场景) AssetSystem.UnloadUnusedAssets(); // 检验所有场景是否销毁 foreach (var provider in _providers) { if (provider.IsSceneProvider()) { if (provider.IsDestroyed == false) { throw new Exception("Should never get here !"); } } } }