Skip to content

Releases: michael811125/OxGFrame

Release v3.6.1

12 Feb 15:00

Choose a tag to compare

[3.6.1] - 2026-02-12

English

  • AssetLoader
    • Critical Fixes

      • Fixed an issue where the Preload series methods in AssetLoaders (using assetNames[] arrays) failed to correctly refine. Also added support for preloading mixed arrays containing both Resources and Bundle asset names.
    • Adjustments

      • Adjusted the log messaging for GroupCache.

中文

  • AssetLoader
    • 緊急修正

      • 修正 AssetLoaders Preload 使用 assetNames[] 預加載的系列方法,未正確 refine 問題,並且修正支持可以混和 Resources 跟 Bundle 資源名稱數組進行預加載。
    • 調整

      • 調整 GroupCache 打印訊息。

Release v3.6.0

12 Feb 07:13

Choose a tag to compare

[3.6.0] - 2026-02-12

English

  • CoreFrame

    • Optimization

      • Significantly optimized loading by refining the logic for checking the sceneName prefix ("build#"). Utilized AsSpan to improve efficiency and reduce GC (achieving almost 0 GC).
  • AssetLoader

    • Optimization

      • Significantly optimized loading by refining the logic for checking the assetName prefix ("res#"). Utilized AsSpan to improve efficiency and reduce GC (achieving almost 0 GC).
    • Fixes

      • Fixed GroupCache (GroupBundle & GroupResources) methods by removing the forceUnload parameter. Since GroupCache uses weak references, this prevents accidental triggering of forceUnload, which could lead to reference errors, making the system safer.
    • Adjustments

      • Adjusted AssetLoaders Unload-related interfaces. Since GroupCache uses weak references, the naming convention now prioritizes the "Unload" prefix.
        • ReleaseBundleRawFiles(int groupId) -> UnloadRawFiles(int groupId)
        • ReleaseResourceAssets(int groupId) & ReleaseBundleAssets(int groupId) -> UnloadAssets(int groupId)
      • Adjusted AssetLoaders Release-related interfaces. Unified the Release interface; it no longer distinguishes between ReleaseBundle and ReleaseResources (now determined by LoadType) without affecting efficiency.
        • ReleaseBundleScenes -> ReleaseScenes
        • ReleaseBundleRawFiles -> ReleaseRawFiles
        • ReleaseResourceAssets & ReleaseBundleAssets -> ReleaseAssets
    • Third-Party Library Changes

      • Removed the built-in YooAsset library; switched to PackageManager for installation and management (if modification of YooAsset source code is required, local installation via PackageManager is still supported).
        • Currently compatible with v2.3.18
          https://github.com/tuyoogame/YooAsset.git?path=Assets/YooAsset
          

中文

  • CoreFrame

    • 優化

      • 大幅度優化加載時,需要 Refine 判斷 sceneName 前墜的方式 ("build#"),使用 AsSpan 提高效率與降低 GC (幾乎 0 GC)。
  • AssetLoader

    • 優化

      • 大幅度優化加載時,需要 Refine 判斷 assetName 前墜的方式 ("res#"),使用 AsSpan 提高效率與降低 GC (幾乎 0 GC)。
    • 修正

      • 修正 GroupCache (GroupBundle & GroupResources) 方法,移除方法中的 forceUnload 參數,主要是 GroupCache 為軟引用,避免誤觸 forceUnload 導致引用錯亂,更安全。
    • 調整

      • 調整 AssetLoaders Unload 相關接口,GroupCache 為軟引用,所以以 Unload 開頭為主。
        • ReleaseBundleRawFiles(int groupId) -> UnloadRawFiles(int groupId)
        • ReleaseResourceAssets(int groupId) & ReleaseBundleAssets(int groupId) -> UnloadAssets(int groupId)
      • 調整 AssetLoaders Release 相關接口,統一 Release 接口,不在區分 ReleaseBundle 跟 ReleaseResources 了 (由 LoadType 決定),不影響效率。
        • ReleaseBundleScenes -> ReleaseScenes
        • ReleaseBundleRawFiles -> ReleaseRawFiles
        • ReleaseResourceAssets & ReleaseBundleAssets -> ReleaseAssets
    • 第三方庫改動

      • 移除 YooAsset 內置庫,改為 PackageManager 進行管理安裝 (如有需要改 YooAsset 的源碼,一樣可以透過 PackageManager 進行本地安裝)。
        • 目前兼容 v2.3.18 版本
          https://github.com/tuyoogame/YooAsset.git?path=Assets/YooAsset
          

Release v3.5.9

22 Jan 08:00

Choose a tag to compare

[3.5.9] - 2026-01-22

English

  • Adjusted

    • Adjusted default names of all configuration files (does not affect development), ref #155.

中文

  • 調整

    • 調整所有配置文件預設名稱 (不影響開發),參考 #155

Release v3.5.8

08 Jan 13:02

Choose a tag to compare

[3.5.8] - 2026-01-08

English

  • Added

    • Added package.json to each module, allowing independent installation of modules via Git URL (please ensure correct dependency installation order).
      • AssetLoader
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/AssetLoader
      
      • CoreFrame (依賴 AssetLoader)
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/CoreFrame
      
      • MediaFrame (依賴 AssetLoader)
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/MediaFrame
      
      • Hotfixer (依賴 AssetLoader)
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/Hotfixer
      
      • GSIFrame
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/GSIFrame
      
      • CenterFrame
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/CenterFrame
      
      • NetFrame
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/NetFrame
      
  • Organized

    • Organized shared ThirdParty libraries to be managed by the primary dependency modules.
      • For example, both Hotfixer and AssetLoader depend on UniFramework. Since Hotfixer also depends on AssetLoader, UniFramework (ThirdParty) is now managed by AssetLoader.
  • AssetLoader

    • Updated

      • Updated YooAsset to the latest commit (f0563cc).
  • MediaFrame

    • Added

      • Added conversion features to the Audio & Video Editor MenuItem, allowing Audio Clip or Video Clip to be converted into operational AudioBase and VideoBase Prefabs.

中文

  • 新增

    • 新增 package.json 至各模塊,可以獨立透過 git url 安裝各模塊 (需要確保依賴安裝順序)。
      • AssetLoader
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/AssetLoader
      
      • CoreFrame (依賴 AssetLoader)
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/CoreFrame
      
      • MediaFrame (依賴 AssetLoader)
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/MediaFrame
      
      • Hotfixer (依賴 AssetLoader)
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/Hotfixer
      
      • GSIFrame
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/GSIFrame
      
      • CenterFrame
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/CenterFrame
      
      • NetFrame
      https://github.com/michael811125/OxGFrame.git?path=Assets/OxGFrame/NetFrame
      
  • 整理

    • 整理共用 ThirdParty 由主依賴模塊管理。
      • 如 Hotfixer 與 AssetLoader 都依賴 UniFramework,但是 Hotfixer 又依賴 AssetLoader,所以 UniFramework (ThirdParty) 由 AssetLoader 管理。
  • AssetLoader

    • 更新

      • 更新 YooAsset 至最新 commit (f0563cc)。
  • MediaFrame

    • 新增

      • 新增 Audio & Video Editor MenuItem 轉換功能,可以將 Audio Clip 或者 Video Clip 轉換成實際操作的 AudioBase 與 VideoBase 的預置體 (Prefab)。

Unity_xhPm8YKRSg

Unity_S7rKvCC19X

Release v3.5.7

30 Dec 05:55

Choose a tag to compare

[3.5.7] - 2025-12-30

English

  • AssetLoader

    • Updated

      • Updated YooAsset to the latest commit (1884fab).
  • NetFrame

    • Added

      • Added NetNode.SetConnectedHandler to configure the callback method triggered upon a successful connection.
    • Fixed

      • Fixed a casting issue during buffer reception in TcpNetProvider.OnBinary.
      // Fix
      var length = arrSeg.Count;
      var rcvData = new byte[length];
      Array.Copy(arrSeg.Array, arrSeg.Offset, rcvData, 0, length);
      this.OnBinary(this, rcvData);

中文

  • AssetLoader
    • 更新

      • 更新 YooAsset 至最新 commit (1884fab)。
  • NetFrame
    • 新增

      • 新增 NetNode.SetConnectedHandler 設置已連線的回調方法。
    • 修正

      • 修正 TcpNetProvider OnBinary 接收 buffer 轉型問題。
      // Fix
      var length = arrSeg.Count;
      var rcvData = new byte[length];
      Array.Copy(arrSeg.Array, arrSeg.Offset, rcvData, 0, length);
      this.OnBinary(this, rcvData);

Release v3.5.6

04 Dec 10:54

Choose a tag to compare

[3.5.6] - 2025-12-04

English

  • AssetLoader
    • Updated

      • Updated YooAsset to v2.3.18 [Affects MiniGame development].

中文

  • AssetLoader
    • 更新

      • 更新 YooAsset 至 v2.3.18 [小遊戲開發有影響]。

Release v3.5.5

21 Nov 06:59

Choose a tag to compare

[3.5.5] - 2025-11-21

English

  • Hotfixer
    • Added HotfixSettings, allowing custom file extensions to avoid issues where some WebGL environments restrict certain extension names.
  • AssetLoader
    • Added PatchSettings, allowing custom file extensions to avoid issues where some WebGL environments restrict certain extension names.

中文

  • Hotfixer
    • 新增 HotfixSettings 可以自定義擴展名稱,避免有些 WebGL 有限制擴展名稱的請求。
  • AssetLoader
    • 新增 PatchSettings 可以自定義擴展名稱,避免有些 WebGL 有限制擴展名稱的請求。
image image

Release v3.5.4

06 Nov 09:38

Choose a tag to compare

English

  • Hotfixer
    • Added

      • Added HotfixEvents.HotfixCreateDownloader (create downloader) (#138).
        • Very important: You must register a listener for the HotfixEvents.HotfixCreateDownloader event and invoke HotfixUserEvents.UserBeginDownload.SendEventMessage(). Otherwise, the flow will keep waiting for user confirmation (#138).
      • Added HotfixEvents.HotfixDownloadProgression (download progress) (#138).
      • Added HotfixUserEvents.UserBeginDownload (user-initiated download) (#138).
    • Updated

      • Updated HotfixerDemo.
  • AssetLoader
    • Added

      • Added ParameterEntry list configuration on PatchLauncher. This allows adding extra YooAsset FileSystem parameters per mode, but you must specify the type (Ref: FileSystemParametersDefine + FileSystem).
        /// <summary>
        /// 支持的型別對應表
        /// </summary>
        private static readonly Dictionary<string, Type> _supportedTypes = new Dictionary<string, Type>(StringComparer.OrdinalIgnoreCase)
        {
            // Boolean
            { "bool", typeof(bool) },
            { "boolean", typeof(bool) },
            
            // Integer types
            { "int", typeof(int) },
            { "int32", typeof(int) },
            { "uint", typeof(uint) },
            { "uint32", typeof(uint) },
            { "byte", typeof(byte) },
            { "sbyte", typeof(sbyte) },
            { "short", typeof(short) },
            { "int16", typeof(short) },
            { "ushort", typeof(ushort) },
            { "uint16", typeof(ushort) },
            { "long", typeof(long) },
            { "int64", typeof(long) },
            { "ulong", typeof(ulong) },
            { "uint64", typeof(ulong) },
            
            // Floating point types
            { "float", typeof(float) },
            { "single", typeof(float) },
            { "double", typeof(double) },
            { "decimal", typeof(decimal) },
            
            // Other common types
            { "string", typeof(string) },
            { "char", typeof(char) }
        };
        image image
      • Added PatchLauncher.AutoUnloadBundleWhenUnused configuration parameter, applied at the YooAsset resource-management layer (Ref: YooAsset v2.3.17).
    • Updated

  • CoreFrame
    • Adjusted

      • Adjusted UIManager and SRManager defaults: FixedUpdate = true and LateUpdate = true.

中文

  • Hotfixer
    • 新增

      • 新增 HotfixEvents.HotfixCreateDownloader (建立下載器) (#138)。
        • 非常重要:一定要註冊監聽 HotfixEvents.HotfixCreateDownloader 事件,並且觸發 HotfixUserEvents.UserBeginDownload.SendEventMessage(),不然會一直等待使用者確認步驟 (#138)。
      • 新增 HotfixEvents.HotfixDownloadProgression (下載進度) (#138)。
      • 新增 HotfixUserEvents.UserBeginDownload (使用者觸發下載) (#138)。
    • 更新

      • 更新 HotfixerDemo。
  • AssetLoader
    • 新增

      • 新增 ParameterEntry 列表配置於 PatchLauncher,可以針對不同模式額外新增 YooAsset FileSystem 的參數配置,但必須表明型別 (參考:FileSystemParametersDefine + 文件系統)。
        /// <summary>
        /// 支持的型別對應表
        /// </summary>
        private static readonly Dictionary<string, Type> _supportedTypes = new Dictionary<string, Type>(StringComparer.OrdinalIgnoreCase)
        {
            // Boolean
            { "bool", typeof(bool) },
            { "boolean", typeof(bool) },
            
            // Integer types
            { "int", typeof(int) },
            { "int32", typeof(int) },
            { "uint", typeof(uint) },
            { "uint32", typeof(uint) },
            { "byte", typeof(byte) },
            { "sbyte", typeof(sbyte) },
            { "short", typeof(short) },
            { "int16", typeof(short) },
            { "ushort", typeof(ushort) },
            { "uint16", typeof(ushort) },
            { "long", typeof(long) },
            { "int64", typeof(long) },
            { "ulong", typeof(ulong) },
            { "uint64", typeof(ulong) },
            
            // Floating point types
            { "float", typeof(float) },
            { "single", typeof(float) },
            { "double", typeof(double) },
            { "decimal", typeof(decimal) },
            
            // Other common types
            { "string", typeof(string) },
            { "char", typeof(char) }
        };
        image image
      • 新增 PatchLauncher.AutoUnloadBundleWhenUnused 配置參數,作用於 YooAsset 資產管理層 (參考:YooAsset v2.3.17)。
    • 更新

  • CoreFrame
    • 調整

      • 調整 UIManager, SRManager 預設驅動 FixedUpdate = true 跟 LateUpdate = true。

Release v3.5.3

22 Oct 16:37

Choose a tag to compare

English

  • AssetLoader
    • Fixed

      • Fixed issue where CacheBundle Unload Additive Scene could not be unloaded in a single operation.
      • Fixed AssetLoaders.HasInCache to properly check if AdditiveScene exists in cache.
    • Optimized

      • Optimized CacheBundle & CacheResources async concurrent same-frame reentry cache hit insufficiency returning null (resolved using single-flight pattern), and ensured RefCount loading and unloading pairing consistency (#134).
  • CoreFrame
    • Fixed

      • Fixed scene unloading consistency when USFrame.UnloadFromBuild and USFrame.UnloadFromBundle are used interchangeably, avoiding Additive Scene count inconsistency.
    • Optimized

      • Optimized USFrame.LoadFromBuildAsync async concurrent same-frame reentry issue, avoiding Single Scene being loaded multiple times during async concurrency (#134).

中文

  • AssetLoader
    • 修正

      • 修正 CacheBundle Unload Additive Scene 無法單次卸載問題。
      • 修正 AssetLoaders.HasInCache 可以檢查到 AdditiveScene 是否存在於緩存中。
    • 優化

      • 優化 CacheBundle & CacheResources 異步併發同幀重入緩存命中不足,返回 null 的問題 (使用單飛模式解決),並且保證 RefCount 加載與卸載成對的一致性 (#134)。
  • CoreFrame
    • 修正

      • 修正 USFrame.UnloadFromBuild 與 USFrame.UnloadFromBundle 交互使用時,場景卸載的一致性,避免 Additive Scene 計數不一致。
    • 優化

      • 優化 USFrame.LoadFromBuildAsync 異步併發同幀重入問題,避免異步併發時 Single Scene 被加載多次 (#134)。

Release v3.5.2

16 Oct 08:11

Choose a tag to compare

[3.5.2] - 2025-10-16

English

  • Hotfixer
    • Added

      • Added HotfixSettings, allowing for custom configuration file names (defaults to hotfixdllconfig.conf).
  • AssetLoader
    • Modified

      • Renamed configuration file from PatchSetting to PatchSettings (data is automatically migrated).
        • Note: After the automatic update, your data will be preserved, but it is recommended to manually rename the existing configuration file.
        • Caution: If you encounter errors due to references to the old name, please update them manually.
        • Additional Note: The BuildTool Extension must be updated (update via Package Manager Samples).
      • Renamed configuration file from CryptogramSetting to CryptogramSettings (data is automatically migrated).
        • Note: After the automatic update, your data will be preserved, but it is recommended to manually rename the existing configuration file.
    • Updated

  • CoreFrame
    • Modified

      • Renamed configuration file from BindCodeSetting to CodeBindingSettings (data is automatically migrated).
        • Note: After the automatic update, your data will be preserved, but it is recommended to manually rename the existing configuration file.
      • Renamed parameter and class from SRSetting to SRSettings (data is automatically migrated).
        • Caution: If you encounter errors due to references to the old name, please update them manually.
      • Renamed parameter and class from UISetting to UISettings (data is automatically migrated).
        • Caution: If you encounter errors due to references to the old name, please update them manually.
      • Renamed parameter and class from MaskSetting to MaskSettings (data is automatically migrated).
        • Caution: If you encounter errors due to references to the old name, please update them manually.

中文

  • Hotfixer
    • 新增

      • 新增 HotfixSettings,可以自定義配置文件名稱 (預設為 hotfixdllconfig.conf)。
  • AssetLoader
    • 修改

      • 修改配置文件名稱 PatchSetting -> PatchSettings (自動更新,數據會保留)。
        • 備註:自動更新後,數據會保留,但是已存在的文件名稱建議手動重新命名。
          • 注意:如有引用舊的名稱報錯,再自行更新。
        • 額外注意:BuildTool Extension 必須更新 (透過 Package Manager Samples 進行更新)。
      • 修改配置文件名稱 CryptogramSetting -> CryptogramSettings (自動更新,數據會保留)。
        • 備註:自動更新後,數據會保留,但是已存在的文件名稱建議手動重新命名。
    • 更新

  • CoreFrame
    • 修改

      • 修改配置文件名稱 BindCodeSetting -> CodeBindingSettings (自動更新,數據會保留)。
        • 備註:自動更新後,數據會保留,但是已存在的文件名稱建議手動重新命名。
      • 修改參數與類別名稱 SRSetting -> SRSettings (自動更新,數據會保留)。
        • 注意:如有引用舊的名稱報錯,再自行更新。
      • 修改參數與類別名稱 UISetting -> UISettings (自動更新,數據會保留)。
        • 注意:如有引用舊的名稱報錯,再自行更新。
      • 修改參數與類別名稱 MaskSetting -> MaskSettings (自動更新,數據會保留)。
        • 注意:如有引用舊的名稱報錯,再自行更新。