Skip to content

Releases: michael811125/OxGFrame

Release v3.3.2

18 Jun 09:03

Choose a tag to compare

[3.3.2] - 2025-06-18

English

  • Hotfixer
    • Added a MenuItem → OxGFrame/Hotfixer/Hotfix Dll Config Generator (hotfixdllconfig.conf), supporting both cipher and plaintext.
    • Added direct conversion for hotfixdllconfig.conf between cipher and plaintext via editor right-click → OxGFrame/Hotfixer/Convert hotfixdllconfig.conf (BYTES [Cipher] <-> JSON [Plaintext]).
    • Added overloaded CheckHotfix methods, supporting automatic loading of the hotfixdllconfig.conf hotfix dlls list.
    // Auto try to load hotfixdllconfig.conf from StreamingAssets
    Hotfixers.CheckHotfix
    (
        // Download and load hotfix files from HotfixPackage
        "HotfixPackage",
        () =>
        {
            Debug.LogWarning("Error in hotfixdllconfig.conf request callback!");
        }
    );
  • Added the HotfixHelper.ExportHotfixDllConfig(List<string> aotDlls, List<string> hotfixDlls, bool cipher) method, which can be used in a BuildPostProcess to output the hotfixdllconfig.conf file into StreamingAssets.
  • Upgraded YooAsset to v2.3.10.
  • Organized Samples.
  • AssetLoader
    • AssetPatcher
      • Modified Release method, added the YooAssets.Destroy().

中文

  • Hotfixer
    • 新增 MenuItem -> OxGFrame/Hotfixer/Hotfix Dll Config Generator (hotfixdllconfig.conf),支持密文跟明文。
    • 新增 hotfixdllconfig.conf 直接轉換密文與明文,編輯器右鍵 -> OxGFrame/Hotfixer/Convert hotfixdllconfig.conf (BYTES [Cipher] <-> JSON [Plaintext])。
    • 新增 CheckHotfix 多載方法,支持自動加載 hotfixdllconfig.conf 熱更 dlls 清單。
    // Auto try to load hotfixdllconfig.conf from StreamingAssets
    Hotfixers.CheckHotfix
    (
        // Download and load hotfix files from HotfixPackage
        "HotfixPackage",
        () =>
        {
            Debug.LogWarning("Error in hotfixdllconfig.conf request callback!");
        }
    );
  • 新增 HotfixHelper.ExportHotfixDllConfig(List<string> aotDlls, List<string> hotfixDlls, bool cipher) 方法,可以建立 BuildPostProcess,輸出 hotfixdllconfig.conf 文件至 StreamingAssets。
  • 更新 YooAsset 至 v2.3.10
  • 整理 Samples。
  • AssetLoader
    • AssetPatcher
      • 調整 Release 方法,加入 YooAssets.Destroy()。

image

Release v3.3.1

11 Apr 11:17

Choose a tag to compare

English

  • CenterFrame
    • APICenter
      • Added Acax support for Native WebRequest (using System.Net WebRequest).
        • HttpNativeWebRequest.Acax
        • HttpNativeWebRequest.AcaxAsync
      • Added Acax support for Native HttpClient (using System.Net.Http HttpClient).
        • HttpNativeClient.Acax
        • HttpNativeClient.AcaxAsync

中文

  • CenterFrame
    • APICenter
      • 新增 Acax 支持 Native WebRequest (使用 System.Net WebRequest)。
        • HttpNativeWebRequest.Acax
        • HttpNativeWebRequest.AcaxAsync
      • 新增 Acax 支持 Native HttpClient (使用 System.Net.Http HttpClient)。
        • HttpNativeClient.Acax
        • HttpNativeClient.AcaxAsync

Release v3.3.0

10 Apr 16:33

Choose a tag to compare

[3.3.0] - 2025-04-11

English

  • Added Dependency

  • AssetLoader

    • Added OXGFRAME_WEAK_HOST_MODE macro definition.
    • Added support for WeakHostMode (Weak Online Mode), requiring an internet connection for the first startup to complete the initial configuration record and patch download.
      • Note: Does not support Skip Download (downloading while playing). When the network is lost, the integrity of the last patch version list will be verified.
      • Additionally, if the network is suddenly lost and a repair is attempted, when the patch integrity check fails, a PatchVersionUpdateFailed event will be triggered (since the process of obtaining the patch version must be restarted, and as long as the network is restored, the remote version can be correctly retrieved for an update).
    • Modified the default encode length for AssetPatcher.GetPatchVersion() to 16.
    • Fixed the handling of AssetPatcher.UnloadPackageAndClearCacheFiles(), so that the Manifest file deletion only occurs when destroyPackage = true.
    • Fixed PatchFsmStates to ensure the handling of Preset DLC Packages initial process.
    • Fixed PatchVersion encoding to a fixed value.
    • Updated YooAsset commit hash to 4e257ab27dc1470e66d6eeac9f9902343eb44c7a.

中文

  • 新增依賴

  • AssetLoader

    • 新增 OXGFRAME_WEAK_HOST_MODE 宏定義。
    • 新增支持 WeakHostMode (弱聯網模式),首次啟動必須聯機,以完成初始配置紀錄與資源下載。
      • 注意:不支持 Skip Download (邊玩邊下載),當失去聯網時,會驗證上一次資源版本的清單內容完整性。
      • 另外,如果突然失去聯網又進行 Repair 時,當驗證到資源不完整,則會發送 PatchVersionUpdateFailed 事件 (因為必須重新從獲取資源版本的流程開始運行, 只要網絡恢復, 則可以正確獲取到遠端版本進行更新)。
    • 修改 AssetPatcher.GetPatchVersion() 預設 encode 長度為 16。
    • 修正 AssetPatcher.UnloadPackageAndClearCacheFiles() 處理,當 destroyPackage = true 時,才會執行 Manifest file 的刪除。
    • 修正 PatchFsmStates 確保處理 Preset DLC Packages 初始流程。
    • 修正 PatchVersion 編碼為固定數值。
    • 更新 YooAsset commit hash 至 4e257ab27dc1470e66d6eeac9f9902343eb44c7a。

Release v3.2.3

02 Apr 10:09

Choose a tag to compare

[3.2.3] - 2025-04-02

English

  • AssetLoader
    • Adjusted PatchVersion encoding display format (minimum 11 digits, maximum 32 digits).
    • Adjusted in-place encryption and decryption method.
    • Updated YooAsset to v2.3.7.

中文

  • AssetLoader
    • 調整 PatchVersion 編碼顯示方式 (至少 11 位數,最大 32 位數)。
    • 調整原地加解方式。
    • 更新 YooAsset 至 v2.3.7

Release v3.2.2

28 Mar 12:13

Choose a tag to compare

[3.2.2] - 2025-03-28

English

  • AssetLoader
    • Adjusted Offset Decrypt to use Span.
    • Adjusted AppConfig comparison process to avoid duplicate requests for configuration files.
    • Removed the BundleUtility.RequestAndCopyFileFromStreamingAssets method.

中文

  • AssetLoader
    • 調整 Offset Decrypt 使用 Span。
    • 調整 AppConfig 比對流程,避免重複請求配置文件。
    • 移除 BundleUtility.RequestAndCopyFileFromStreamingAssets 方法。

Release v3.2.1

27 Mar 11:41

Choose a tag to compare

[3.2.1] - 2025-03-27

English

  • CoreFrame
    • SRFrame, UIFrame, CPFrame
      • Added support for SRBase and UIBase for MonoDrive, allowing them to be placed in the scene for static loading (without affecting the initial dynamic loading process).
        • Note: If MonoDrive is enabled, control and configuration by the manager will be lost, and you must manage and cache manually.
        • Additionally, after enabling MonoDrive, if you want to activate Update, you must use the following macros:
          • SRFrame: OXGFRAME_SRFRAME_MONODRIVE_UPDATE_ON, OXGFRAME_SRFRAME_MONODRIVE_FIXEDUPDATE_ON, OXGFRAME_SRFRAME_MONODRIVE_LATEUPDATE_ON (use as needed based on development requirements)
          • UIFrame: OXGFRAME_UIFRAME_MONODRIVE_UPDATE_ON, OXGFRAME_UIFRAME_MONODRIVE_FIXEDUPDATE_ON, OXGFRAME_UIFRAME_MONODRIVE_LATEUPDATE_ON (use as needed based on development requirements)
          • CPFrame: OXGFRAME_CPFRAME_MONODRIVE_UPDATE_ON, OXGFRAME_CPFRAME_MONODRIVE_FIXEDUPDATE_ON, OXGFRAME_CPFRAME_MONODRIVE_LATEUPDATE_ON (use as needed based on development requirements)
  • MediaFrame
    • AudioFrame
      • Added support for AudioBase for MonoDrive, allowing it to be placed in the scene for static loading (without affecting the initial dynamic loading process).
        • Note: If MonoDrive is enabled, control and configuration by the manager will be lost, and you must manage and cache manually.
        • Additionally, after enabling MonoDrive, if you want to activate Update, you must use the following macro:
          • AudioFrame: OXGFRAME_AUDIOFRAME_MONODRIVE_FIXEDUPDATE_ON (must be used if MonoDrive is enabled for Audio)
      • Added the maxPrepareTimeSeconds parameter.
      • Modified the access permissions for the Play, Stop, and Pause methods (can be called when MonoDrive is enabled and manual management is desired).
      • Adjusted the Audio preparation process.
      • Fixed the IsPlaying() state to ensure it is set to false after Stop.
      • Fixed the IsPaused() state to ensure it is set to false after Stop.
    • VideoFrame
      • Added support for VideoBase for MonoDrive, allowing it to be placed in the scene for static loading (without affecting the initial dynamic loading process).
        • Note: If MonoDrive is enabled, control and configuration by the manager will be lost, and you must manage and cache manually.
        • Additionally, after enabling MonoDrive, if you want to activate Update, you must use the following macro:
          • VideoFrame: OXGFRAME_VIDEOFRAME_MONODRIVE_FIXEDUPDATE_ON (must be used if MonoDrive is enabled for Video)
      • Modified the access permissions for the Play, Stop, and Pause methods (can be called when MonoDrive is enabled and manual management is desired).
      • Fixed the IsPlaying() state to ensure it is set to false after Stop.
      • Fixed the IsPaused() state to ensure it is set to false after Stop.
  • Others

中文

  • CoreFrame
    • SRFrame, UIFRame, CPFrame
      • 新增 SRBase, UIBse 對於 MonoDrive 的支持,可事先放置於場景中靜態加載 (不影響動態加載的初始流程)。
        • 注意:如果啟用 MonoDrive,將失去管理器的控管與配置,必須自行控管與緩存。
        • 另外,啟用 MonoDrive 後,如果要激活 Update 則必須使用以下宏 (Macro):
          • SRFrame: OXGFRAME_SRFRAME_MONODRIVE_UPDATE_ON, OXGFRAME_SRFRAME_MONODRIVE_FIXEDUPDATE_ON, OXGFRAME_SRFRAME_MONODRIVE_LATEUPDATE_ON (依開發需求,決定是否使用)
          • UIFrame: OXGFRAME_UIFRAME_MONODRIVE_UPDATE_ON, OXGFRAME_UIFRAME_MONODRIVE_FIXEDUPDATE_ON, OXGFRAME_UIFRAME_MONODRIVE_LATEUPDATE_ON (依開發需求,決定是否使用)
          • CPFrame: OXGFRAME_CPFRAME_MONODRIVE_UPDATE_ON, OXGFRAME_CPFRAME_MONODRIVE_FIXEDUPDATE_ON, OXGFRAME_CPFRAME_MONODRIVE_LATEUPDATE_ON (依開發需求,決定是否使用)
  • MediaFrame
    • AudioFrame
      • 新增 AudioBase 對於 MonoDrive 的支持,可事先放置於場景中靜態加載 (不影響動態加載的初始流程)。
        • 注意:如果啟用 MonoDrive,將失去管理器的控管與配置,必須自行控管與緩存。
        • 另外,啟用 MonoDrive 後,如果要激活 Update 則必須使用以下宏 (Macro):
          • AudioFrame: OXGFRAME_AUDIOFRAME_MONODRIVE_FIXEDUPDATE_ON (Audio 如果有啟用 MonoDrive 的需求,必須使用)
      • 新增 maxPrepareTimeSeconds 參數。
      • 修改 Play, Stop, Pause 方法的存取權限 (當啟用 MonoDirve 時,又想要自行管理時,可以調用)。
      • 調整 Audio 準備流程。
      • 修正 IsPlaying() 狀態,必須在 Stop 之後設置為 false。
      • 修正 IsPaused() 狀態,必須在 Stop 之後設置為 false。
    • VideoFrame
      • 新增 VideoBase 對於 MonoDrive 的支持,可事先放置於場景中靜態加載 (不影響動態加載的初始流程)。
        • 注意:如果啟用 MonoDrive,將失去管理器的控管與配置,必須自行控管與緩存。
        • 另外,啟用 MonoDrive 後,如果要激活 Update 則必須使用以下宏 (Macro):
          • VideoFrame: OXGFRAME_VIDEOFRAME_MONODRIVE_FIXEDUPDATE_ON (Video 如果有啟用 MonoDrive 的需求,必須使用)
      • 修改 Play, Stop, Pause 方法的存取權限 (當啟用 MonoDirve 時,又想要自行管理時,可以調用)。
      • 修正 IsPlaying() 狀態,必須在 Stop 之後設置為 false。
      • 修正 IsPaused() 狀態,必須在 Stop 之後設置為 false。
  • Others

Release v3.2.0

26 Mar 16:36

Choose a tag to compare

[3.2.0] - 2025-03-26

English

Recommended to upgrade to this version

  • AssetLoader
    • Added Tests.
    • Added support for OffsetXOR encryption/decryption - runtime passed.
    • Added support for ChaCha20 Bundle encryption/decryption - runtime passed (Reference: CSharp-ChaCha20-NetStandard).
    • Added support for XXTEA Bundle encryption/decryption - runtime passed (Reference: Razensoft.XXTEA).
    • Adjusted the error function of Requester in PatchFsmStates (oxgkit.utilities v1.4.3 or higher).
    • Optimized to significantly reduce GC overhead when retrieving decryption keys.
    • Optimized DecryptionServices code for better maintainability.
    • Optimized FileCryptogram code for better maintainability.
    • Removed Offset random seed (does not affect encryption/decryption).
    • Updated YooAssets to v2.3.6.
  • CoreFrame
    • Added Tests (TODO).
    • Added parameters to the CloseSelf method: CloseSelf(bool disabledPreClose = false, bool forceDestroy = false).
  • MediaFrame
    • Added Tests (TODO).
    • Added MediaObjectRemoveCacheHandler (requires oxgkit.utilities v1.4.5 or higher).
    • Removed MediaLRUCache.
    • AudioFrame
      • Added MaxRequestTimeSeconds (Timeout) configuration.
      • Adjusted the Request method in AudioManager.
      • Removed the RequestAudio method and unified instance creation using Requester (requires oxgkit.utilities v1.4.5 or higher).
    • VideoFrame
      • Added MaxPrepareTimeSeconds (Timeout) configuration.
      • Fixed an issue where SourceType.Url did not correctly set the source as VideoSource.Url.
  • CenterFrame
    • Added Tests.
    • Adjusted Acax's ErrorCallback return type to ErrorInfo -> { string url, string message, Exception exception }.
  • GSIFrame
    • Added Tests (TODO).
  • Hotfixer
    • Added Tests (TODO).
  • NetFrame
    • Added Tests (TODO).

中文

建議升級至此版本

  • AssetLoader
  • 新增 Tests。
  • 新增支持 OffsetXOR 加解密 - runtime passed。
  • 新增支持 ChaCha20 Bundle 加解密 - runtime passed (Reference: CSharp-ChaCha20-NetStandard)。
  • 新增支持 XXTEA Bundle 加解密 - runtime passed (Reference: Razensoft.XXTEA)。
  • 調整 PatchFsmStates 中 Requester 的 error function (oxgkit.utilities v1.4.3 or higher)。
  • 優化大幅度減少獲取解密 Key 所產生的 GC。
  • 優化 DecryptionServices 代碼,提高維護性。
  • 優化 FileCryptogram 代碼,提高維護性。
  • 移除 Offset random seed (不影響加解密)。
  • 更新 YooAssets to v2.3.6
  • CoreFrame
    • 新增 Tests (TODO)。
    • 新增 CloseSelf(bool disabledPreClose = false, bool forceDestroy = false) 方法參數。
  • MediaFrame
    • 新增 Tests (TODO)。
    • 新增 MediaObjectRemoveCacheHandler (依賴 oxgkit.utilities v1.4.5 or higher)。
    • 移除 MediaLRUCache。
    • AudioFrame
      • 新增 MaxRequestTimeSeconds (Timeout) 配置。
      • 調整 AudioManager Request 方法。
      • 移除 RequestAudio 方法,統一使用 Requester 進行實例 (依賴 oxgkit.utilities v1.4.5 or higher)。
    • VideoFrame
      • 新增 MaxPrepareTimeSeconds (Timeout) 配置。
      • 修正 SourceType.Url 沒有正確指定 source 為 VideoSource.Url 的問題。
  • CenterFrame
    • 新增 Tests。
    • 調整 Acax 的 ErrorCallback 返回 ErrorInfo -> { string url, string message, Exception exception }。
  • GSIFrame
    • 新增 Tests (TODO)。
  • Hotfixer
    • 新增 Tests (TODO)。
  • NetFrame
    • 新增 Tests (TODO)。

For reference

Encryption and Decryption Efficiency

Release v3.1.3

21 Mar 11:36

Choose a tag to compare

[3.1.3] - 2025-03-21

English

  • Added Http.Acax timeout functionality.
  • Optimized Http.Acax code.
  • Fixed Http.Acax cts disposal error.

中文

  • 新增 Http.Acax Timeout 功能。
  • 優化 Http.Acax 代碼。
  • 修正 Http.Acax cts dispose 錯誤問題。

Release v3.1.2

19 Mar 08:25

Choose a tag to compare

[3.1.2] - 2025-03-19

English


中文

Release v3.1.1

18 Mar 11:56

Choose a tag to compare

[3.1.1] - 2025-03-18

English

  • Fixed an issue where StreamingAssets WebRequest did not catch 404 errors.

中文

  • 修正 StreamingAssets WebRequest 尚未捕捉到 404 error 的錯誤。