/// <summary> /// 强制回收所有资源 /// </summary> public static void ForceReleaseAll() { for (int i = 0; i < _loaders.Count; i++) { AssetLoaderBase loader = _loaders[i]; loader.Destroy(true); } _loaders.Clear(); // 释放所有资源 Resources.UnloadUnusedAssets(); }
/// <summary> /// 资源回收 /// 卸载引用计数为零的资源 /// </summary> public static void UnloadUnusedAssets() { for (int i = _loaders.Count - 1; i >= 0; i--) { AssetLoaderBase loader = _loaders[i]; if (loader.CanDestroy()) { loader.Destroy(true); _loaders.RemoveAt(i); } } }
/// <summary> /// 资源回收 /// 卸载引用计数为零的资源 /// </summary> public static void Release() { for (int i = _loaders.Count - 1; i >= 0; i--) { AssetLoaderBase loader = _loaders[i]; if (loader.IsDone() && loader.RefCount <= 0) { loader.Destroy(true); _loaders.RemoveAt(i); } } }
/// <summary> /// 更新场景 /// 注意:因为场景比较特殊,需要立刻回收 /// </summary> private static void UpdateScene() { for (int i = _loaders.Count - 1; i >= 0; i--) { AssetLoaderBase loader = _loaders[i]; if (loader.IsSceneLoader && loader.CanDestroy()) { loader.Destroy(true); _loaders.RemoveAt(i); } } }