Files
YooAsset/Assets/YooAsset/Runtime/InitializeParameters.cs

225 lines
8.9 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
2022-09-28 14:39:58 +08:00
namespace YooAsset
{
2023-12-21 19:10:46 +08:00
/// <summary>
/// 默认的构建管线
/// </summary>
public enum EDefaultBuildPipeline
{
/// <summary>
/// 内置构建管线
/// </summary>
BuiltinBuildPipeline,
/// <summary>
/// 可编程构建管线
/// </summary>
ScriptableBuildPipeline,
/// <summary>
/// 原生文件构建管线
/// </summary>
RawFileBuildPipeline,
}
/// <summary>
/// 运行模式
/// </summary>
public enum EPlayMode
{
/// <summary>
/// 编辑器下的模拟模式
/// </summary>
EditorSimulateMode,
/// <summary>
/// 离线运行模式
/// </summary>
OfflinePlayMode,
/// <summary>
/// 联机运行模式
/// </summary>
HostPlayMode,
/// <summary>
/// WebGL运行模式
/// </summary>
WebPlayMode,
}
/// <summary>
/// 文件系统参数
2023-12-21 19:10:46 +08:00
/// </summary>
public class FileSystemParameters
2023-12-21 19:10:46 +08:00
{
2024-07-27 15:25:21 +08:00
public const string FILE_VERIFY_LEVEL = "FILE_VERIFY_LEVEL";
public const string DECRYPTION_SERVICES = "DECRYPTION_SERVICES";
public const string APPEND_FILE_EXTENSION = "APPEND_FILE_EXTENSION";
public const string RAW_FILE_BUILD_PIPELINE = "RAW_FILE_BUILD_PIPELINE";
public const string REMOTE_SERVICES = "REMOTE_SERVICES";
public const string DISABLE_UNITY_WEB_CACHE = "DISABLE_UNITY_WEB_CACHE";
public const string RESUME_DOWNLOAD_MINMUM_SIZE = "RESUME_DOWNLOAD_MINMUM_SIZE";
public const string RESUME_DOWNLOAD_RESPONSE_CODES = "RESUME_DOWNLOAD_RESPONSE_CODES";
internal Dictionary<string, object> CreateParameters = new Dictionary<string, object>();
/// <summary>
/// 文件系统类
/// 格式: "namespace.class,assembly"
/// 格式: "命名空间.类型名,程序集"
/// </summary>
public string FileSystemClass { private set; get; }
2023-12-21 19:10:46 +08:00
/// <summary>
/// 文件系统的根目录
2023-12-21 19:10:46 +08:00
/// </summary>
public string RootDirectory { private set; get; }
public FileSystemParameters(string fileSystemClass, string rootDirectory)
{
FileSystemClass = fileSystemClass;
RootDirectory = rootDirectory;
}
2023-12-21 19:10:46 +08:00
/// <summary>
/// 添加自定义参数
2023-12-21 19:10:46 +08:00
/// </summary>
public void AddParameter(string name, object value)
{
CreateParameters.Add(name, value);
}
2023-12-21 19:10:46 +08:00
/// <summary>
/// 创建默认的编辑器文件系统参数
2024-07-07 00:52:17 +08:00
/// <param name="simulateBuildResult">模拟构建结果</param>
2023-12-21 19:10:46 +08:00
/// </summary>
2024-07-05 15:10:07 +08:00
public static FileSystemParameters CreateDefaultEditorFileSystemParameters(SimulateBuildResult simulateBuildResult)
{
string fileSystemClass = typeof(DefaultEditorFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, simulateBuildResult.PackageRootDirectory);
return fileSystemParams;
}
2023-12-21 19:10:46 +08:00
/// <summary>
/// 创建默认的内置文件系统参数
2023-12-21 19:10:46 +08:00
/// </summary>
/// <param name="verifyLevel">缓存文件的校验等级</param>
/// <param name="rootDirectory">内置文件的根路径</param>
2024-07-27 15:25:21 +08:00
public static FileSystemParameters CreateDefaultBuildinFileSystemParameters(IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultBuildinFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
2024-07-27 15:25:21 +08:00
fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
2023-12-21 19:10:46 +08:00
/// <summary>
/// 创建默认的内置文件系统参数(原生文件)
2023-12-21 19:10:46 +08:00
/// </summary>
/// <param name="verifyLevel">缓存文件的校验等级</param>
/// <param name="rootDirectory">内置文件的根路径</param>
2024-07-27 18:37:17 +08:00
public static FileSystemParameters CreateDefaultBuildinRawFileSystemParameters(IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultBuildinFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
2024-07-27 15:25:21 +08:00
fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
fileSystemParams.AddParameter(APPEND_FILE_EXTENSION, true);
fileSystemParams.AddParameter(RAW_FILE_BUILD_PIPELINE, true);
2024-07-27 18:37:17 +08:00
fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
2023-12-21 19:10:46 +08:00
/// <summary>
/// 创建默认的缓存文件系统参数
2023-12-21 19:10:46 +08:00
/// </summary>
/// <param name="remoteServices">远端资源地址查询服务类</param>
/// <param name="verifyLevel">缓存文件的校验等级</param>
/// <param name="rootDirectory">文件系统的根目录</param>
2024-07-27 15:25:21 +08:00
public static FileSystemParameters CreateDefaultCacheFileSystemParameters(IRemoteServices remoteServices, IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultCacheFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
2024-07-27 15:25:21 +08:00
fileSystemParams.AddParameter(REMOTE_SERVICES, remoteServices);
fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
2023-12-21 19:10:46 +08:00
/// <summary>
/// 创建默认的缓存文件系统参数(原生文件)
2023-12-21 19:10:46 +08:00
/// </summary>
/// <param name="remoteServices">远端资源地址查询服务类</param>
/// <param name="verifyLevel">缓存文件的校验等级</param>
/// <param name="rootDirectory">文件系统的根目录</param>
2024-07-27 18:37:17 +08:00
public static FileSystemParameters CreateDefaultCacheRawFileSystemParameters(IRemoteServices remoteServices, IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultCacheFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
2024-07-27 15:25:21 +08:00
fileSystemParams.AddParameter(REMOTE_SERVICES, remoteServices);
fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
fileSystemParams.AddParameter(APPEND_FILE_EXTENSION, true);
fileSystemParams.AddParameter(RAW_FILE_BUILD_PIPELINE, true);
2024-07-27 18:37:17 +08:00
fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
/// <summary>
/// 创建默认的Web文件系统参数
/// </summary>
2024-07-07 00:52:17 +08:00
/// <param name="disableUnityWebCache">禁用Unity的网络缓存</param>
2024-07-04 21:59:24 +08:00
public static FileSystemParameters CreateDefaultWebFileSystemParameters(bool disableUnityWebCache = false)
{
string fileSystemClass = typeof(DefaultWebFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, null);
2024-07-27 15:25:21 +08:00
fileSystemParams.AddParameter(DISABLE_UNITY_WEB_CACHE, disableUnityWebCache);
return fileSystemParams;
}
2023-12-21 19:10:46 +08:00
}
/// <summary>
/// 初始化参数
2023-12-21 19:10:46 +08:00
/// </summary>
public abstract class InitializeParameters
2023-12-21 19:10:46 +08:00
{
}
/// <summary>
/// 编辑器下模拟运行模式的初始化参数
/// </summary>
public class EditorSimulateModeParameters : InitializeParameters
{
public FileSystemParameters EditorFileSystemParameters;
2023-12-21 19:10:46 +08:00
}
/// <summary>
/// 离线运行模式的初始化参数
/// </summary>
public class OfflinePlayModeParameters : InitializeParameters
{
public FileSystemParameters BuildinFileSystemParameters;
2023-12-21 19:10:46 +08:00
}
/// <summary>
/// 联机运行模式的初始化参数
/// </summary>
public class HostPlayModeParameters : InitializeParameters
{
public FileSystemParameters BuildinFileSystemParameters;
public FileSystemParameters DeliveryFileSystemParameters;
public FileSystemParameters CacheFileSystemParameters;
2023-12-21 19:10:46 +08:00
}
/// <summary>
/// WebGL运行模式的初始化参数
/// </summary>
public class WebPlayModeParameters : InitializeParameters
{
public FileSystemParameters WebFileSystemParameters;
2023-12-21 19:10:46 +08:00
}
2022-09-28 14:39:58 +08:00
}