BundleConfig
Coding Style wiki
BundleConfig 是 AssetLoader 模块的运行时核心设置与工具类,集中管理资源运行模式(PlayMode)、下载与加载参数等静态设置,并提供部署配置文件(CdnConfig)解析、CDN 端点路径组合与本地/内置路径定位等工具方法。
| 命名空间 | OxGFrame.AssetLoader.Bundle |
| 类型 | public static class |
| 源码 | BundleConfig.cs |
using OxGFrame.AssetLoader.Bundle;
提醒 一般情况下,运行模式与 Preset Packages 由场景中 PatchLauncher 组件的 Inspector 设置配置,并在启动时自动写入 BundleConfig 的对应字段,无需手动指派。
枚举
PlayMode
public enum PlayMode
{
EditorSimulateMode,
OfflineMode,
HostMode,
WeakHostMode,
WebGLMode,
WebGLRemoteMode,
CustomMode
}
资源运行模式。
| 名称 | 值 | 说明 |
|---|---|---|
| EditorSimulateMode | 0 | 编辑器模拟模式。无需实际构建 Bundles,在编辑器中直接模拟资源运行(仅供开发阶段使用)。 |
| OfflineMode | 1 | 离线模式。仅使用随包内置资源运行,不进行远端更新。 |
| HostMode | 2 | 联机模式。从 Host Server(CDN)检查版本并下载更新资源。 |
| WeakHostMode | 3 | 弱联网模式。基于联机模式,支持断网时回退至本地最后记录的版本继续运行(搭配 enableLastLocalVersionsCheckInWeakNetwork 参数)。 |
| WebGLMode | 4 | WebGL 模式。仅使用 Web 服务器上的内置资源运行。 |
| WebGLRemoteMode | 5 | WebGL 远端模式。支持从远端服务器(CDN)下载更新资源。 |
| CustomMode | 6 | 自定义模式。由开发者通过 YooAsset 初始化参数自行配置运行方式(不支持 Preset Packages 的自动初始化)。 |
BuildMode
public enum BuildMode
{
BuiltinBuildPipeline = 1,
ScriptableBuildPipeline = 0,
RawFileBuildPipeline = 2,
#if YOOASSET_3
ArchiveFileBuildPipeline = 3
#endif
}
资源构建管线模式。
| 名称 | 值 | 说明 |
|---|---|---|
| ScriptableBuildPipeline | 0 | 可编程构建管线(SBP, Scriptable Build Pipeline)。 |
| BuiltinBuildPipeline | 1 | 内置构建管线(Built-in Build Pipeline)。 |
| RawFileBuildPipeline | 2 | 原生文件构建管线(Raw File Build Pipeline)。 |
| ArchiveFileBuildPipeline | 3 | 归档文件构建管线(Archive File Build Pipeline)。限 YooAsset v3(YOOASSET_3)。 |
提醒 YOOASSET_2 / YOOASSET_3 由框架依安装的 YooAsset 版本自动定义(无需手动设置),完整差异对照参考 YooAsset 版本兼容性。
提醒 Preset Package 上的 buildMode 设置仅在 EditorSimulateMode 下生效。
CryptogramType 常量
public class CryptogramType
{
public const string NONE = "NONE";
public const string OFFSET = "OFFSET";
public const string XOR = "XOR";
public const string HT2XOR = "HT2XOR";
public const string HT2XORPLUS = "HT2XORPLUS";
public const string AES = "AES";
public const string CHACHA20 = "CHACHA20";
public const string XXTEA = "XXTEA";
public const string OFFSETXOR = "OFFSETXOR";
}
加解密类型标识符,用于组合解密参数字符串(如 PatchLauncher 的 Decrypt Info 设置,标识符大小写不敏感):
| 常量 | 值 | 解密参数格式 |
|---|---|---|
| NONE | "NONE" | NONE(无加密) |
| OFFSET | "OFFSET" | OFFSET, dummySize |
| XOR | "XOR" | XOR, key |
| HT2XOR | "HT2XOR" | HT2XOR, hKey, tKey, jKey |
| HT2XORPLUS | "HT2XORPLUS" | HT2XORPLUS, hKey, tKey, j1Key, j2Key |
| AES | "AES" | AES, key, iv |
| CHACHA20 | "CHACHA20" | CHACHA20, key, nonce, counter |
| XXTEA | "XXTEA" | XXTEA, key |
| OFFSETXOR | "OFFSETXOR" | OFFSETXOR, key, dummySize |
静态字段
运行模式与 Preset Packages
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| playMode | PlayMode | PlayMode.EditorSimulateMode | 当前资源运行模式。由 PatchLauncher 在启动时依 Inspector 设置写入。 |
| playModeParameters | PlayModeParameters | null | 当前运行模式的参数配置。由 PatchLauncher 依运行模式指派对应的参数对象。 |
| listAppPackages | List<AppPackageInfoWithBuild> | null | App Preset Package 列表(默认包裹)。由 PatchLauncher 写入。 |
| listDlcPackages | List<DlcPackageInfoWithBuild> | null | DLC Preset Package 列表(默认包裹)。由 PatchLauncher 写入。 |
下载选项 (Download Options)
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| maxConcurrencyDownloadCount | int | 10 | 同时并发下载数量。在创建下载器时作为默认并发数。 |
| failedRetryCount | int | 3 | 下载失败重新尝试次数。在创建下载器时作为默认重试数。 |
| breakpointFileSizeThreshold | uint | 20971520(20 MB) | 断点续传阈值(bytes)。文件大小达到阈值时启用断点续传(对应 YooAsset 文件系统参数 RESUME_DOWNLOAD_MINMUM_SIZE)。 |
| DEFAULT_DOWNLOAD_WATCHDOG_TIMEOUT | int | 30 | downloadWatchdogTimeout 的默认值。 |
| downloadWatchdogTimeout | int | 30 | 下载器看门狗监控超时时间。监控时间范围内未接收到任何下载数据时,直接终止该下载任务(对应 YooAsset 文件系统参数 DOWNLOAD_WATCH_DOG_TIME)。 |
加载选项 (Load Options)
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| bundleLoadReadBufferSize | uint | 32768(32 KB) | 资源读取缓冲大小(AssetBundle.LoadFromStream)。 |
| bundleDecryptReadBufferSize | uint | 32768(32 KB) | 资源解密读取缓冲大小。 |
| autoUnloadBundleWhenUnused | bool | false | 资源引用计数归零时,自动释放资源包(对应 YooAsset AutoUnloadBundleWhenUnused)。 |
处理选项 (Process Options)
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| operationSystemMaxTimeSlice | long | 30 | 异步作业系统每帧执行消耗的最大时间切片(毫秒,通过 YooAssets.SetOperationSystemMaxTimeSlice 应用)。 |
autoUnloadBundleWhenUnused、breakpointFileSizeThreshold、downloadWatchdogTimeout与operationSystemMaxTimeSlice在 Package 初始化阶段应用至 YooAsset,如需调整请在初始化流程前设置。maxConcurrencyDownloadCount与failedRetryCount在每次创建下载器时读取。
方法总览
部署配置文件 (Bundle URL Config)
| 方法 | 说明 |
|---|---|
| GetValueFromUrlCfg | 从部署配置文件(CdnConfig)获取指定键的值(自动检测加密并解密)。 |
| GetAppStoreLink | 获取主程序商店链接(store_link)。 |
| GoToAppStore | 以系统浏览器打开主程序商店页面。 |
AppConfig 获取
| 方法 | 说明 |
|---|---|
| GetAppConfigFromStreamingAssets | 从内置 StreamingAssets 读取 AppConfig。 |
| GetAppConfigFromHostServer | 从 Host Server 下载 AppConfig(支持弱联网回退)。 |