文件系统
学习如何配置文件系统的初始化参数。
YOO默认提供了多个文件系统类,可以满足大部分项目的业务需求。
- EditorFileSystem 编辑器模拟文件系统类
- BuiltinFileSystem 内置文件系统类
- SandboxFileSystem 缓存文件系统类
- WebRemoteFileSystem Web平台远端文件系统类
- WebServerFileSystem Web平台服务端文件系统类
还包含各类小游戏平台的文件系统扩展类,该文档不做解释说明!
文件系统初始化参数
FileVerifyLevel
参数说明:在文件系统初始化的时候,沙盒内缓存文件的校验级别。
支持范围:BuiltinFileSystem, SandboxFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.FileVerifyLevel, EFileVerifyLevel.High);
FileVerifyMaxConcurrency
参数说明:在文件系统初始化的时候,沙盒内缓存文件校验最大并发数。
注意事项:参数不会超过系统提供的最大工作线程数量,超过会被截断。
支持范围:BuiltinFileSystem, SandboxFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.FileVerifyMaxConcurrency, 100);
InstallCleanupMode
参数说明:在覆盖安装之后,首次启动对沙盒内缓存文件的清理模式。
支持范围:BuiltinFileSystem, SandboxFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.InstallCleanupMode, EInstallCleanupMode.ClearAllCacheFiles);
RemoteService
参数说明:远程服务接口的实例类。
支持范围:SandboxFileSystem, WebRemoteFileSystem
IRemoteService remoteService = new RemoteService(defaultHostServer, fallbackHostServer);
fileSystemParameters.AddParameter(EFileSystemParameter.RemoteService, remoteService);
AssetbundleDecryptor
参数说明:解密服务接口的实例类。
支持范围:BuiltinFileSystem, SandboxFileSystem, WebRemoteFileSystem, WebServerFileSystem
IBundleDecryptor decryptor = new FileDecryptor();
fileSystemParameters.AddParameter(EFileSystemParameter.AssetbundleDecryptor, decryptor);
ManifestDecryptor
参数说明:资源清单服务类。可以实现资源清单的解密或解压。
支持范围:BuiltinFileSystem, SandboxFileSystem, WebRemoteFileSystem, WebServerFileSystem
IManifestDecryptor manifestDecryptor = new ManifestDecryptor();
fileSystemParameters.AddParameter(EFileSystemParameter.ManifestDecryptor, manifestDecryptor);
RawbundleDecryptor
参数说明:RawBundle 解密器。
支持范围:BuiltinFileSystem, SandboxFileSystem
IBundleDecryptor decryptor = new RawBundleDecryptor();
fileSystemParameters.AddParameter(EFileSystemParameter.RawbundleDecryptor, decryptor);
AssetbundleFallbackDecryptor
参数说明:AssetBundle 备用解密器,通常用于回退到内存解密方式。
支持范围:BuiltinFileSystem, SandboxFileSystem
IBundleMemoryDecryptor fallbackDecryptor = new BundleMemoryDecryptor();
fileSystemParameters.AddParameter(EFileSystemParameter.AssetbundleFallbackDecryptor, fallbackDecryptor);
已移除:追加文件扩展名
旧版 APPEND_FILE_EXTENSION 参数已移除。
已移除:禁用 Catalog 文件
旧版 DISABLE_CATALOG_FILE 参数已移除。
UnityWebRequestCreator
参数说明:自定义 UnityWebRequest 创建委托,可用于设置自定义 Header 或证书校验等。
支持范围:WebRemoteFileSystem, WebServerFileSystem
UnityWebRequestCreator creator = (url) => UnityWebRequest.Get(url);
fileSystemParameters.AddParameter(EFileSystemParameter.UnityWebRequestCreator, creator);
DownloadBackend
参数说明:自定义下载后台接口,替换默认的下载实现。
支持范围:SandboxFileSystem
IDownloadBackend backend = new MyDownloadBackend();
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadBackend, backend);
DisableUnityWebCache
参数说明:禁用Unity的网络缓存。
支持范围:WebRemoteFileSystem, WebServerFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.DisableUnityWebCache, true);
DownloadDisableOndemand
参数说明:禁用边玩边下机制。(不推荐开启)
支持范围:SandboxFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadDisableOndemand, true);
DownloadMaxConcurrency
参数说明:下载系统,最大并发连接数。可以控制同时下载的文件数量。
支持范围:SandboxFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadMaxConcurrency, 10);
DownloadMaxRequestPerFrame
参数说明:下载系统,每帧发起的最大请求数。
支持范围:SandboxFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadMaxRequestPerFrame, 10);
DownloadWatchdogTimeout
参数说明:下载任务的看门狗机制监控时间。
参数解读:监控时间范围内,如果没有接收到任何下载数据,那么直接终止任务!
支持范围:SandboxFileSystem
int seconds = 60; //单位:秒
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadWatchdogTimeout, seconds);
DownloadResumeMinimumSize
参数说明:启用断点续传的文件最小尺寸。小于该尺寸的文件不启用断点续传。
支持范围:SandboxFileSystem
long fileSize = 1024 * 1024; //单位:byte
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadResumeMinimumSize, fileSize);
已移除:断点续传响应码
旧版 RESUME_DOWNLOAD_RESPONSE_CODES 参数已移除。
DownloadRetryPolicy
参数说明:自定义下载重试策略。
支持范围:SandboxFileSystem, WebRemoteFileSystem, WebServerFileSystem, 小游戏平台文件系统
IDownloadRetryPolicy retryPolicy = new MyDownloadRetryPolicy();
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadRetryPolicy, retryPolicy);
DownloadUrlPolicy
参数说明:自定义 URL 选择策略。
支持范围:SandboxFileSystem, WebRemoteFileSystem, WebServerFileSystem, 小游戏平台文件系统
IDownloadUrlPolicy urlPolicy = new MyDownloadUrlPolicy();
fileSystemParameters.AddParameter(EFileSystemParameter.DownloadUrlPolicy, urlPolicy);
VirtualWebglMode
参数说明:模拟WebGL平台模式。
实际用途:编辑器下不需要构建AB,也可以模拟小游戏开发环境,等同真机运行环境。
支持范围:EditorFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.VirtualWebglMode, true);
VirtualDownloadMode
参数说明:模拟虚拟下载模式。
实际用途:编辑器下不需要构建AB,也可以模拟远端资源下载,等同真机运行环境。
支持范围:EditorFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.VirtualDownloadMode, true);
VirtualDownloadSpeed
参数说明:模拟虚拟下载的网速。
支持范围:EditorFileSystem
int speed = 1024 * 1024; //单位:字节
fileSystemParameters.AddParameter(EFileSystemParameter.VirtualDownloadSpeed, speed);
AsyncSimulateMinFrame
参数说明:异步模拟加载最小帧数。
实际用途:编辑器下不需要构建AB,也可以模拟异步加载的最小耗时。
支持范围:EditorFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.AsyncSimulateMinFrame, 5);
AsyncSimulateMaxFrame
参数说明:异步模拟加载最大帧数。
实际用途:编辑器下不需要构建AB,也可以模拟异步加载的最大耗时。
支持范围:EditorFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.AsyncSimulateMaxFrame, 20);
CopyBuiltinPackageManifest
参数说明:拷贝内置清单。
支持范围:BuiltinFileSystem
fileSystemParameters.AddParameter(EFileSystemParameter.CopyBuiltinPackageManifest, true);
CopyBuiltinPackageManifestDestRoot
参数说明:拷贝内置清单的目标目录。
支持范围:BuiltinFileSystem
string destDirectory = $"{Application.persistentDataPath}/yoo/PackageName/ManifestFiles/";
fileSystemParameters.AddParameter(EFileSystemParameter.CopyBuiltinPackageManifestDestRoot, destDirectory);
已移除:拷贝本地文件服务
旧版 COPY_LOCAL_FILE_SERVICES 参数已移除。
UnpackFileSystemRoot
参数说明:指定内置文件系统解压文件的根目录。
支持范围:BuiltinFileSystem
string unpackRoot = $"{Application.persistentDataPath}/yoo/unpack";
fileSystemParameters.AddParameter(EFileSystemParameter.UnpackFileSystemRoot, unpackRoot);