Skip to content

Commit

Permalink
updated to v2.11.6
Browse files Browse the repository at this point in the history
  • Loading branch information
michael811125 committed Jul 29, 2024
1 parent 12c5416 commit 76f1cfb
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 20 deletions.
25 changes: 17 additions & 8 deletions Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetLoaders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,15 @@ public static BundlePack LoadAdditiveScene(string packageName, string assetName,
/// <param name="recursively"></param>
public static void UnloadScene(string assetName, bool recursively = false)
{
if (AssetPatcher.IsInitialized())
if (!AssetPatcher.IsReleased())
CacheBundle.GetInstance().UnloadScene(assetName, recursively);
}

public static void ReleaseBundleScenes()
{
if (!AssetPatcher.IsReleased())
CacheBundle.GetInstance().ReleaseScenes();
}
#endregion

#region Cacher
Expand Down Expand Up @@ -413,12 +419,13 @@ public static T LoadRawFile<T>(string packageName, string assetName, Progression
public static void UnloadRawFile(string assetName, bool forceUnload = false)
{
if (RefineResourcesPath(ref assetName)) Logging.Print<Logger>("<color=#ff0000>【Error】Only Bundle Type</color>");
else if (AssetPatcher.IsInitialized()) CacheBundle.GetInstance().UnloadRawFile(assetName, forceUnload);
else if (!AssetPatcher.IsReleased()) CacheBundle.GetInstance().UnloadRawFile(assetName, forceUnload);
}

public static void ReleaseBundleRawFiles()
{
CacheBundle.GetInstance().ReleaseRawFiles();
if (!AssetPatcher.IsReleased())
CacheBundle.GetInstance().ReleaseRawFiles();
}
#endregion

Expand Down Expand Up @@ -934,7 +941,7 @@ public static T InstantiateAsset<T>(string packageName, string assetName, Transf
public static void UnloadAsset(string assetName, bool forceUnload = false)
{
if (RefineResourcesPath(ref assetName)) CacheResource.GetInstance().UnloadAsset(assetName, forceUnload);
else if (AssetPatcher.IsInitialized()) CacheBundle.GetInstance().UnloadAsset(assetName, forceUnload);
else if (!AssetPatcher.IsReleased()) CacheBundle.GetInstance().UnloadAsset(assetName, forceUnload);
}

public static void ReleaseResourceAssets()
Expand All @@ -944,7 +951,8 @@ public static void ReleaseResourceAssets()

public static void ReleaseBundleAssets()
{
CacheBundle.GetInstance().ReleaseAssets();
if (!AssetPatcher.IsReleased())
CacheBundle.GetInstance().ReleaseAssets();
}
#endregion
#endregion
Expand Down Expand Up @@ -1123,12 +1131,13 @@ public static T LoadRawFile<T>(int groupId, string packageName, string assetName
public static void UnloadRawFile(int groupId, string assetName, bool forceUnload = false)
{
if (RefineResourcesPath(ref assetName)) Logging.Print<Logger>("<color=#ff0000>【Error】Only Bundle Type</color>");
else if (AssetPatcher.IsInitialized()) GroupBundle.GetInstance().UnloadRawFile(groupId, assetName, forceUnload);
else if (!AssetPatcher.IsReleased()) GroupBundle.GetInstance().UnloadRawFile(groupId, assetName, forceUnload);
}

public static void ReleaseBundleRawFiles(int groupId)
{
GroupBundle.GetInstance().ReleaseRawFiles(groupId);
if (!AssetPatcher.IsReleased())
GroupBundle.GetInstance().ReleaseRawFiles(groupId);
}
#endregion

Expand Down Expand Up @@ -1649,7 +1658,7 @@ public static T InstantiateAsset<T>(int groupId, string packageName, string asse
public static void UnloadAsset(int groupId, string assetName, bool forceUnload = false)
{
if (RefineResourcesPath(ref assetName)) GroupResource.GetInstance().UnloadAsset(groupId, assetName, forceUnload);
else if (AssetPatcher.IsInitialized()) GroupBundle.GetInstance().UnloadAsset(groupId, assetName, forceUnload);
else if (!AssetPatcher.IsReleased()) GroupBundle.GetInstance().UnloadAsset(groupId, assetName, forceUnload);
}

public static void ReleaseResourceAssets(int groupId)
Expand Down
19 changes: 18 additions & 1 deletion Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetPatcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using OxGFrame.AssetLoader.Bundle;
using OxGFrame.AssetLoader.Utility;
using System.Collections.Generic;
using UnityEngine;
using YooAsset;
using static OxGFrame.AssetLoader.Utility.DownloadSpeedCalculator;
using static YooAsset.DownloaderOperation;
Expand Down Expand Up @@ -100,6 +99,15 @@ public static bool IsInitialized()
return PackageManager.isInitialized;
}

/// <summary>
/// Return yooasset is released
/// </summary>
/// <returns></returns>
public static bool IsReleased()
{
return PackageManager.isReleased;
}

/// <summary>
/// Return patch check state
/// </summary>
Expand Down Expand Up @@ -844,5 +852,14 @@ public static async UniTask<bool> BeginDownloadWithCombineDownloaders(ResourceDo
#endregion
#endregion
#endregion

/// <summary>
/// Release packages
/// </summary>
public static void Release()
{
BundleConfig.ReleaseSecureString();
PackageManager.Release();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace OxGFrame.AssetLoader.Bundle
internal static class PackageManager
{
internal static bool isInitialized = false;
internal static bool isReleased = false;

private static string _currentPackageName;
private static ResourcePackage _currentPackage;
Expand Down Expand Up @@ -761,6 +762,7 @@ public static ResourceDownloaderOperation GetPackageDownloaderByAssetInfos(Resou
/// </summary>
public static void Release()
{
isReleased = true;
YooAssets.Destroy();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,16 +100,6 @@ private async void Awake()
}
}

private void OnApplicationQuit()
{
PackageManager.isInitialized = false;
BundleConfig.ReleaseSecureString();
#if !UNITY_WEBGL
PackageManager.Release();
Logging.Print<Logger>("<color=#ff84d1>(Powered by YooAsset) Release Packages Completes.</color>");
#endif
}

#if UNITY_EDITOR
private void OnValidate()
{
Expand Down
30 changes: 30 additions & 0 deletions Assets/OxGFrame/AssetLoader/Scripts/Runtime/Cacher/CacheBundle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -869,6 +869,36 @@ public void UnloadScene(string assetName, bool recursively)
}
else Logging.Print<Logger>($"<color=#00e5ff>【<color=#ff4a8d>Unload Scene Invalid</color>】 => << CacheBundle >> sceneName: {assetName} maybe not <color=#ffb33e>Additive</color> or is <color=#ffb33e>Single</color></color>");
}

public void ReleaseScenes()
{
if (this._additiveSceneCounter.Count == 0) return;

HashSet<ResourcePackage> packages = new HashSet<ResourcePackage>();

// 強制釋放緩存與資源
foreach (var assetName in this._additiveSceneCounter.Keys.ToArray())
{
if (this.HasInCache(assetName))
{
BundlePack pack = this.GetFromCache(assetName);
var package = PackageManager.GetPackage(pack.packageName);
if (!packages.Contains(package)) packages.Add(package);
this.UnloadScene(assetName, true);
}
}

// 清除 Additive 計數緩存
this._additiveScenes.Clear();
this._additiveSceneCounter.Clear();

foreach (var package in packages)
{
package?.UnloadUnusedAssets();
}

Logging.Print<Logger>($"<color=#ff71b7>【Release All Scenes (Addtive)】 => Current << CacheBundle >> Additive Scene Cache Count: {this._additiveSceneCounter.Count}</color>");
}
#endregion

#region Asset
Expand Down
5 changes: 5 additions & 0 deletions Assets/OxGFrame/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# CHANGELOG

## [2.11.6] - 2024-07-29
- Added method AssetsLoaders.ReleaseBundleScenes (for additive scenes).
- Added method AssetPatcher.Release (mainly for yooasset destroy).
- Removed OnApplicationQuit process in PatchLauncher, use manual to call AssetPatcher.Release before the application quits.

## [2.11.5] - 2024-07-22
- Fixed Unload after yooasset destroyed bug issue.
- Fixed same package in PackageFsmStates
Expand Down
2 changes: 1 addition & 1 deletion Assets/OxGFrame/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "com.michaelo.oxgframe",
"displayName": "OxGFrame",
"description": "The OxGFrame is a framework based on Unity for accelerating game development. Supports multi-platform Win, OSX, Android, iOS, WebGL.",
"version": "2.11.5",
"version": "2.11.6",
"unity": "2021.3",
"license": "MIT",
"samples": [
Expand Down

0 comments on commit 76f1cfb

Please sign in to comment.