Repository navigation
Releases: cout-m6o/OxGFrame
Releases · cout-m6o/OxGFrame
Release list
Release v3.7.0
[3.7.0] - 2026-07-30
English
-
MediaFrame
-
New Features
- Inspector preview player for
AudioBase/VideoBase- Play / Pause / Resume / Stop with seek bar and timecode; supports all source types without entering Play Mode.
- Video renders inside the inspector (decoded internally with
VideoPlayerinVideoRenderMode.APIOnly); audio plays throughAudioSampleProvideron the audio thread. - Detects blocked
http://sources (Insecure HTTP, 2022.1+) and offers switching to "Only in development builds".
- Added
AudioBase.GetAudioUrlFromURL(),VideoBase.GetVideoUrlFromStreamingAssets(), andVideoBase.GetVideoUrlFromURL(); init flows refactored to use them.
- Inspector preview player for
-
Fixes
- Fixed inverted
ignoreTimeScale(when enabled,fixedUnscaledDeltaTimeis now used correctly); monoDrive FixedUpdate paths now honor the flag as well. - Fixed direct full-url requests when
getUrlPathFromCfgis disabled (no longer requests UrlCfg and throws on an unassigned TextAsset); addedUrlCfgandAudioManagernull guards. - Fixed
GetMediaComponents<U>throwingInvalidCastExceptionfor user subclasses (now filters withis). - Fixed
AutoClearMixerExposedParams/AutoRestoreMixerExposedParamsleaking other mixers' records into the target mixer (now scoped by mixer prefix).
- Fixed inverted
-
Breaking Changes
- Renamed the
disabledEndEventparameter todisableEndEventinMediaFramesStop/StopAll series (only affects callers using named arguments). - Renamed internal
reuqestertorequester.
- Renamed the
-
-
CoreFrame
-
New Features
- Code binding generator
- Tail rules gain a
usingNamespacefield: requiredusingdirectives are inserted automatically in Auto mode or prepended to the clipboard in Manual mode (leave empty to manage usings manually). - IDE-like namespace lookup: per-rule [Find] button (multiple candidates pop up a selection menu) plus a "Try Find All Using Namespaces" bulk button.
- Generated content self-adapts its indentation and preserves the file BOM on write.
- Tail rules gain a
- Code binding generator
-
Fixes
- Fixed
CoreFrames.CPFrame.PreloadAsync<T>(packageName, assetName)dropping the generic type (preloaded the wrong type). - Fixed
GetComponent<U>/GetComponents<U>throwingInvalidCastExceptionfor user subclasses (now usesas/OfType). - Fixed sync
CoreFrames.USFrame.LoadScene(int buildIndex, ...)loading by name (fails for not-yet-loaded scenes); now loads by build index. - Fixed
Binderdereferencing the bind name before validating its format (invalid names like_Nodeno longer abort the whole binding scan withIndexOutOfRangeException); same fix applied to the CodeBinding generator. - Fixed
HideAll/RevealAlliterating a mutable collection (now snapshots likeCloseAll; preventsInvalidOperationExceptionwhen handlers close UIs). - Fixed
CheckHasAnyHidingNRE on empty preload-mode stacks. - Fixed reverse/stack-by-stack force-destroy safety cleanup missing index 0 (stale destroyed references no longer remain in caches); renamed
_PreprocessRemoveReserveSafetyto_PreprocessRemoveReverseSafety. - Fixed
FrameManager.Destroypopping the wrong stack element during batch destroys and added a missing null guard (now removes the exact instance).
- Fixed
-
Breaking Changes
- Renamed the
disabledPreCloseparameter todisableOnPreCloseacross Close/Hide/CloseAll series (only affects callers using named arguments).
- Renamed the
-
Adjustments
- Renamed
CoreFrames.UIFrame/SRFrameenabledUpdate/enabledFixedUpdate/enabledLateUpdatetoenableUpdate/enableFixedUpdate/enableLateUpdate; old names remain as[Obsolete]forwards.
- Renamed
-
-
Common
-
New Features
- Added the
Commonmodule (com.michaelo.oxgframe.common) — a framework-level shared module that hosts framework-wide editor tooling (Common/Scripts/Editor); every module package declares it as a dependency, so standalone module installs receive it automatically. - API Updater ([OxGFrame/Others/API Updater]) — a tool for aligning project code with renamed framework APIs
- Reworked into a scan-and-review tool: scans the project, previews every deprecated API usage in a window, and only rewrites the selected items (each file keeps its BOM and line endings).
- Rules are generated automatically from the framework's
[Obsolete]members; a manual table and an optionalAPIUpdateRulesSettingsasset cover the rest — future renames need no rule maintenance. - Type-aware matching: static APIs require the declaring-type prefix, inherited members only match verified subclasses, common names are never guessed, and named parameters always require manual review.
- Overload ambiguity is resolved by call arguments automatically; unresolved usages get a dropdown to choose the new API.
- Detects framework version changes on editor load and asks before opening the tool; never modifies files without confirmation.
- Added the
-
-
AssetLoader
-
New Features
- YooAsset dual-version support
- Compiles against both YooAsset 2.x (verified with 2.3.18~2.3.19) and 3.x (verified with 3.0.3-beta~3.0.5; 3.0.5+ recommended);
YOOASSET_2/YOOASSET_3are defined automatically from the installed package version. - The v3 code path uses native v3 APIs only: Options-based initialization, the new file systems, the split decryption interfaces, and raw files loaded as
RawFileObject. - All 8 built-in cryptogram services implement the matching v3 decrypt interfaces, plus
IBundleEncryptor/IManifestEncryptoron the editor side.
- Compiles against both YooAsset 2.x (verified with 2.3.18~2.3.19) and 3.x (verified with 3.0.3-beta~3.0.5; 3.0.5+ recommended);
- Added
BuildMode.ArchiveFileBuildPipeline(YooAsset v3 only) so EditorSimulateMode simulates archive packages correctly; the BuildTool sample gains a matching "AFBP" build case.
- YooAsset dual-version support
-
Fixes
- Fixed
AssetLoaders.ReleaseScenes()throwing NRE whenever additive scenes were loaded (additive packages are now collected from the additive cache). - Fixed
PackageEvents.PatchCheckDiskNotEnoughSpacenot routinggroupId, which preventedPackageOperation.onPatchCheckDiskNotEnoughSpacefrom ever firing (DLC patch flow stalled silently on low disk space). - Fixed
AssetPatcher.GetPatchVersion()NRE when called before the first patch check. - Fixed
AssetPatcher.SetPresetPackagesNRE when called beforePatchLauncherawakes (now falls back toBundleConfigwith a warning). - Fixed decryption args shorter than 4 characters (e.g. "xor") throwing during
PatchLauncherinitialization (now uses case-insensitiveStartsWith; empty args are treated as NONE). - Fixed download progression emitting
NaNwhen total size is 0 (also fixed in Hotfixer events). - Fixed
GetRawFilePath(Async)force-unloading shared raw files out from under other holders (now decrements normally). - Fixed
UnityWebRequest/CancellationTokenSourceleaks inStreamingAssetsHelper. - Fixed
ParameterParsernumeric parsing being culture-sensitive (nowInvariantCulture).
- Fixed
-
Optimization
- Replaced reflection type checks (
IsInstanceOfType) with theisoperator on the asset handle hot path. DownloadSpeedCalculatornow uses a private lock object andDateTime.UtcNow.- Modernized
BundleUtilityMD5 helpers (MD5.Create()withusing;FileInfooverload now disposes its stream).
- Replaced reflection type checks (
-
Adjustments
- Renamed public serialized field
DecryptInfo.scuredStringTypetosecuredStringType(serialization preserved viaFormerlySerializedAs). - Renamed
IDecryptInitialize.CheckIsIntialized()toCheckIsInitialized()(breaking only for custom decryption implementations). - Renamed internal const
DEFAULT_MAX_CONCURRENCY_MAX_DOWNLOAD_COUNTtoDEFAULT_MAX_CONCURRENCY_DOWNLOAD_COUNT.
- Renamed public serialized field
-
-
GSIFrame
-
Fixes
AddGameStagenow guards against null stage instances.DeleteGameStagenow refuses to delete the currently running stage (prevents a dangling current stage that skipsOnExit).ChangeGameStagenow validates the target stage exists before setting the incoming id (fail-fast with a clear error).
-
-
NetFrame
-
Fixes
- All net provider events (
OnOpen/OnBinary/OnMessage/OnError/OnClose) are now invoked null-safely (prevents NRE on socket threads). NetNode.Send/ auto-reconnect now guard against a disposed provider.NetNode.Dispose()now callsGC.SuppressFinalize(disposed nodes no longer enter the finalizer queue).
- All net provider events (
-
Adjustments
- Renamed protected field
_hearBeatTickerto_heartBeatTicker.
- Renamed protected field
-
-
Hotfixer
-
Fixes
CheckHotfixconfig-driven overloads now invokeerrorActionon empty data or config parsing failure instead of stalling silently; duplicated bodies unified into one helper.- Hotfix assembly loading now hoists the AppDomain assembly enumeration out of the per-dll loop and safely trims the
.dllextension (checksEndsWithfirst). - Fixed hotfix download progression emitting
NaNwhen total size is 0.
-
-
CenterFrame
-
Fixes
Http.Acaxnow disposes itsCancellationTokenSourceper request (no more timer registration leaks).
-
-
Samples
-
New Features
- Added "AI Agent Skills" sample (
oxgframe-unity-skill) importable via Package Manager. ShipsSKILL.md+ 9 source-verified references that teach AI coding agents (Claude Code, Codex CLI, Cursor, etc.) OxGFrame usage; briefly covers the OxGKit APIs OxGFrame uses. BuildToolsample now targets both YooAsset versions (v3 build pipeline / parameter / collector renames are bridged via version defines).
- Added "AI Agent Skills" sample (
-
Fixes
- Fixed
NetFrameDemo.CloseKCP()closing the TCP node instead of KCP. - Fixed
BuildToolAndroid AAB split setting failing to compile on Unity 2021 / 2022 (PlayerSettings.Android.splitApplicationBinaryexists only on 2023.1+; older editors...
- Fixed
-
Release v3.6.1
[3.6.1] - 2026-02-12
English
- AssetLoader
-
Critical Fixes
- Fixed an issue where the
Preloadseries methods inAssetLoaders(using assetNames[] arrays) failed to correctly refine. Also added support for preloading mixed arrays containing bothResourcesandBundleasset names.
- Fixed an issue where the
-
Adjustments
- Adjusted the log messaging for
GroupCache.
- Adjusted the log messaging for
-
中文
- AssetLoader
-
緊急修正
- 修正 AssetLoaders Preload 使用 assetNames[] 預加載的系列方法,未正確 refine 問題,並且修正支持可以混和 Resources 跟 Bundle 資源名稱數組進行預加載。
-
調整
- 調整 GroupCache 打印訊息。
-
Release v3.6.0
[3.6.0] - 2026-02-12
English
-
CoreFrame
-
Optimization
- Significantly optimized loading by refining the logic for checking the
sceneNameprefix ("build#"). UtilizedAsSpanto improve efficiency and reduce GC (achieving almost 0 GC).
- Significantly optimized loading by refining the logic for checking the
-
-
AssetLoader
-
Optimization
- Significantly optimized loading by refining the logic for checking the
assetNameprefix ("res#"). UtilizedAsSpanto improve efficiency and reduce GC (achieving almost 0 GC).
- Significantly optimized loading by refining the logic for checking the
-
Fixes
- Fixed
GroupCache(GroupBundle & GroupResources) methods by removing theforceUnloadparameter. SinceGroupCacheuses weak references, this prevents accidental triggering offorceUnload, which could lead to reference errors, making the system safer.
- Fixed
-
Adjustments
- Adjusted
AssetLoadersUnload-related interfaces. SinceGroupCacheuses 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
AssetLoadersRelease-related interfaces. Unified the Release interface; it no longer distinguishes betweenReleaseBundleandReleaseResources(now determined byLoadType) without affecting efficiency.ReleaseBundleScenes-> ReleaseScenesReleaseBundleRawFiles-> ReleaseRawFilesReleaseResourceAssets&ReleaseBundleAssets-> ReleaseAssets
- Adjusted
-
Third-Party Library Changes
- Removed the built-in
YooAssetlibrary; switched toPackageManagerfor 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
- Currently compatible with v2.3.18
- Removed the built-in
-
中文
-
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-> ReleaseScenesReleaseBundleRawFiles-> ReleaseRawFilesReleaseResourceAssets&ReleaseBundleAssets-> ReleaseAssets
- 調整 AssetLoaders Unload 相關接口,GroupCache 為軟引用,所以以 Unload 開頭為主。
-
第三方庫改動
- 移除 YooAsset 內置庫,改為 PackageManager 進行管理安裝 (如有需要改 YooAsset 的源碼,一樣可以透過 PackageManager 進行本地安裝)。
- 目前兼容 v2.3.18 版本
https://github.com/tuyoogame/YooAsset.git?path=Assets/YooAsset
- 目前兼容 v2.3.18 版本
- 移除 YooAsset 內置庫,改為 PackageManager 進行管理安裝 (如有需要改 YooAsset 的源碼,一樣可以透過 PackageManager 進行本地安裝)。
-
Release v3.5.9
Release v3.5.8
[3.5.8] - 2026-01-08
English
-
Added
- Added
package.jsonto 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
- Added
-
Organized
- Organized shared
ThirdPartylibraries to be managed by the primary dependency modules.- For example, both
HotfixerandAssetLoaderdepend onUniFramework. SinceHotfixeralso depends onAssetLoader,UniFramework(ThirdParty) is now managed byAssetLoader.
- For example, both
- Organized shared
-
AssetLoader
-
Updated
- Updated YooAsset to the latest commit (f0563cc).
-
-
MediaFrame
-
Added
- Added conversion features to the Audio & Video Editor MenuItem, allowing
Audio CliporVideo Clipto be converted into operationalAudioBaseandVideoBasePrefabs.
- Added conversion features to the Audio & Video Editor MenuItem, allowing
-
中文
-
新增
- 新增 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
- 新增 package.json 至各模塊,可以獨立透過 git url 安裝各模塊 (需要確保依賴安裝順序)。
-
整理
- 整理共用 ThirdParty 由主依賴模塊管理。
- 如 Hotfixer 與 AssetLoader 都依賴 UniFramework,但是 Hotfixer 又依賴 AssetLoader,所以 UniFramework (ThirdParty) 由 AssetLoader 管理。
- 整理共用 ThirdParty 由主依賴模塊管理。
-
AssetLoader
-
更新
- 更新 YooAsset 至最新 commit (f0563cc)。
-
-
MediaFrame
-
新增
- 新增 Audio & Video Editor MenuItem 轉換功能,可以將 Audio Clip 或者 Video Clip 轉換成實際操作的 AudioBase 與 VideoBase 的預置體 (Prefab)。
-
Release v3.5.7
[3.5.7] - 2025-12-30
English
-
AssetLoader
-
Updated
- Updated YooAsset to the latest commit (1884fab).
-
-
NetFrame
-
Added
- Added
NetNode.SetConnectedHandlerto configure the callback method triggered upon a successful connection.
- Added
-
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);
- Fixed a casting issue during buffer reception in
-
中文
- 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
Release v3.5.5
[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 有限制擴展名稱的請求。

Release v3.5.4
English
- Hotfixer
-
Added
- Added
HotfixEvents.HotfixCreateDownloader(create downloader) (#138).- Very important: You must register a listener for the
HotfixEvents.HotfixCreateDownloaderevent and invokeHotfixUserEvents.UserBeginDownload.SendEventMessage(). Otherwise, the flow will keep waiting for user confirmation (#138).
- Very important: You must register a listener for the
- Added
HotfixEvents.HotfixDownloadProgression(download progress) (#138). - Added
HotfixUserEvents.UserBeginDownload(user-initiated download) (#138).
- Added
-
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) } };
- Added
PatchLauncher.AutoUnloadBundleWhenUnusedconfiguration parameter, applied at the YooAsset resource-management layer (Ref: YooAsset v2.3.17).
- Added ParameterEntry list configuration on PatchLauncher. This allows adding extra YooAsset FileSystem parameters per mode, but you must specify the type (Ref: FileSystemParametersDefine + FileSystem).
-
Updated
- Updated YooAsset to v2.3.17.
-
- CoreFrame
-
Adjusted
- Adjusted
UIManagerandSRManagerdefaults:FixedUpdate = trueandLateUpdate = true.
- Adjusted
-
中文
- Hotfixer
-
新增
- 新增 HotfixEvents.HotfixCreateDownloader (建立下載器) (#138)。
- 非常重要:一定要註冊監聽 HotfixEvents.HotfixCreateDownloader 事件,並且觸發 HotfixUserEvents.UserBeginDownload.SendEventMessage(),不然會一直等待使用者確認步驟 (#138)。
- 新增 HotfixEvents.HotfixDownloadProgression (下載進度) (#138)。
- 新增 HotfixUserEvents.UserBeginDownload (使用者觸發下載) (#138)。
- 新增 HotfixEvents.HotfixCreateDownloader (建立下載器) (#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) } };
- 新增 PatchLauncher.AutoUnloadBundleWhenUnused 配置參數,作用於 YooAsset 資產管理層 (參考:YooAsset v2.3.17)。
- 新增 ParameterEntry 列表配置於 PatchLauncher,可以針對不同模式額外新增 YooAsset FileSystem 的參數配置,但必須表明型別 (參考:FileSystemParametersDefine + 文件系統)。
-
更新
- 更新 YooAsset 至 v2.3.17。
-
- CoreFrame
-
調整
- 調整 UIManager, SRManager 預設驅動 FixedUpdate = true 跟 LateUpdate = true。
-
Release v3.5.3
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)。
-

