跳到主要内容
版本:2.3.x

文件系统

学习如何配置文件系统的初始化参数。

YOO默认提供了多个文件系统类,可以满足大部分项目的业务需求。

  • DefaultEditorFileSystem 编辑器模拟文件系统类
  • DefaultBuildinFileSystem 内置文件系统类
  • DefaultCacheFileSystem 缓存文件系统类
  • DefaultWebRemoteFileSystem Web平台远端文件系统类
  • DefaultWebServerFileSystem Web平台服务端文件系统类

还包含各类小游戏平台的文件系统扩展类,该文档不做解释说明!

文件系统初始化参数

FILE_VERIFY_LEVEL

参数说明:在文件系统初始化的时候,沙盒内缓存文件的校验级别。

支持范围:DefaultBuildinFileSystem, DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.FILE_VERIFY_LEVEL, EFileVerifyLevel.High);

FILE_VERIFY_MAX_CONCURRENCY

参数说明:在文件系统初始化的时候,沙盒内缓存文件校验最大并发数。

注意事项:参数不会超过系统提供的最大工作线程数量,超过会被截断。

支持范围:DefaultBuildinFileSystem, DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.FILE_VERIFY_MAX_CONCURRENCY, 100);

INSTALL_CLEAR_MODE

参数说明:在覆盖安装之后,首次启动对沙盒内缓存文件的清理模式。

支持范围:DefaultBuildinFileSystem, DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.INSTALL_CLEAR_MODE, EOverwriteInstallClearMode.ClearAllCacheFiles);

REMOTE_SERVICES

参数说明:远程服务接口的实例类。

支持范围:DefaultCacheFileSystem, DefaultWebRemoteFileSystem

IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
fileSystemParameters.AddParameter(FileSystemParametersDefine.REMOTE_SERVICES, remoteServices);

DECRYPTION_SERVICES

参数说明:解密服务接口的实例类。

支持范围:DefaultBuildinFileSystem, DefaultCacheFileSystem, DefaultWebRemoteFileSystem, DefaultWebServerFileSystem

IDecryptionServices decryptionServices = new FileDecryptionServices();
fileSystemParameters.AddParameter(FileSystemParametersDefine.DECRYPTION_SERVICES, decryptionServices);

MANIFEST_SERVICES

参数说明:资源清单服务类。可以实现资源清单的解密或解压。

支持范围:DefaultBuildinFileSystem, DefaultCacheFileSystem, DefaultWebRemoteFileSystem, DefaultWebServerFileSystem

IManifestRestoreServices manifestServices = new ManifestRestoreServices();
fileSystemParameters.AddParameter(FileSystemParametersDefine.MANIFEST_SERVICES, manifestServices);

APPEND_FILE_EXTENSION

参数说明:缓存的数据文件追加文件格式。

实际用途:针对原生文件例如视频文件,开启后缓存的文件会追加后缀名。可以通过地址直接播放缓存的视频文件。

支持范围:DefaultBuildinFileSystem, DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.APPEND_FILE_EXTENSION, true);

DISABLE_CATALOG_FILE

参数说明:禁用Catalog目录查询文件。

支持范围:DefaultBuildinFileSystem

 fileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_CATALOG_FILE, true);

DISABLE_UNITY_WEB_CACHE

参数说明:禁用Unity的网络缓存。

支持范围:DefaultWebRemoteFileSystem, DefaultWebServerFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_UNITY_WEB_CACHE, true);

DISABLE_ONDEMAND_DOWNLOAD

参数说明:禁用边玩边下机制。(不推荐开启)

支持范围:DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_ONDEMAND_DOWNLOAD, true);

DOWNLOAD_MAX_CONCURRENCY

参数说明:下载系统,最大并发连接数。可以控制同时下载的文件数量。

支持范围:DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.DOWNLOAD_MAX_CONCURRENCY, 10);

DOWNLOAD_MAX_REQUEST_PER_FRAME

参数说明:下载系统,每帧发起的最大请求数。

支持范围:DefaultCacheFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.DOWNLOAD_MAX_REQUEST_PER_FRAME, 10);

DOWNLOAD_WATCH_DOG_TIME

参数说明:下载任务的看门狗机制监控时间。

参数解读:监控时间范围内,如果没有接收到任何下载数据,那么直接终止任务!

支持范围:DefaultCacheFileSystem

int seconds = 60; //单位:秒
fileSystemParameters.AddParameter(FileSystemParametersDefine.DOWNLOAD_WATCH_DOG_TIME, seconds);

RESUME_DOWNLOAD_MINMUM_SIZE

参数说明:启用断点续传的文件最小尺寸。小于该尺寸的文件不启用断点续传。

支持范围:DefaultCacheFileSystem

int fileSize = 1024 * 1024; //单位:byte
fileSystemParameters.AddParameter(FileSystemParametersDefine.RESUME_DOWNLOAD_MINMUM_SIZE, fileSize);

RESUME_DOWNLOAD_RESPONSE_CODES

参数说明:断点续传下载器关注的错误码。

实际用途:如果遇到以下错误返回码,验证失败直接删除下载文件。

支持范围:DefaultCacheFileSystem

List<long> httpCodes = new List<long> { 401 }; //HTTP返回码
fileSystemParameters.AddParameter(FileSystemParametersDefine.RESUME_DOWNLOAD_RESPONSE_CODES, httpCodes);

VIRTUAL_WEBGL_MODE

参数说明:模拟WebGL平台模式。

实际用途:编辑器下不需要构建AB,也可以模拟小游戏开发环境,等同真机运行环境。

支持范围:DefaultEditorFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.VIRTUAL_WEBGL_MODE, true);

VIRTUAL_DOWNLOAD_MODE

参数说明:模拟虚拟下载模式。

实际用途:编辑器下不需要构建AB,也可以模拟远端资源下载,等同真机运行环境。

支持范围:DefaultEditorFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.VIRTUAL_DOWNLOAD_MODE, true);

VIRTUAL_DOWNLOAD_SPEED

参数说明:模拟虚拟下载的网速。

支持范围:DefaultEditorFileSystem

int speed = 1024 * 1024; //单位:字节
fileSystemParameters.AddParameter(FileSystemParametersDefine.VIRTUAL_DOWNLOAD_SPEED, speed);

ASYNC_SIMULATE_MIN_FRAME

参数说明:异步模拟加载最小帧数。

实际用途:编辑器下不需要构建AB,也可以模拟异步加载的最小耗时。

支持范围:DefaultEditorFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.ASYNC_SIMULATE_MIN_FRAME, 5);

ASYNC_SIMULATE_MAX_FRAME

参数说明:异步模拟加载最大帧数。

实际用途:编辑器下不需要构建AB,也可以模拟异步加载的最大耗时。

支持范围:DefaultEditorFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.ASYNC_SIMULATE_MAX_FRAME, 20);

COPY_BUILDIN_PACKAGE_MANIFEST

参数说明:拷贝内置清单。

支持范围:DefaultBuildinFileSystem

fileSystemParameters.AddParameter(FileSystemParametersDefine.COPY_BUILDIN_PACKAGE_MANIFEST, true);

COPY_BUILDIN_PACKAGE_MANIFEST_DEST_ROOT

参数说明:拷贝内置清单的目标目录。

支持范围:DefaultBuildinFileSystem

string destDirectory = $"{Application.persistentDataPath}/yoo/PackageName/ManifestFiles/";
fileSystemParameters.AddParameter(FileSystemParametersDefine.COPY_BUILDIN_PACKAGE_MANIFEST_DEST_ROOT, destFilePath);

COPY_LOCAL_FILE_SERVICES

参数说明:拷贝内置文件接口的实例类。

实际用途:参考YOO官方文档:解决方案 - 本地资源拷贝定制解决方案

支持范围:DefaultBuildinFileSystem

ICopyLocalFileServices copyLocalFileServices = new CopyLocalFileServices();
fileSystemParameters.AddParameter(FileSystemParametersDefine.COPY_LOCAL_FILE_SERVICES, copyLocalFileServices);