Files
CC-Framework.BriskGameServer/Assets/BriskSdk/Runtime/Core/BriskOptions.cs

74 lines
1.9 KiB
C#
Raw Normal View History

2026-04-10 22:04:51 +08:00
using System;
/// <summary>
/// Brisk SDK 初始化参数。
/// </summary>
2026-04-10 22:04:51 +08:00
public sealed class BriskOptions
{
/// <summary>
/// 服务端基础地址。可以传主机地址SDK 会自动补上 <c>/api</c>。
/// </summary>
2026-04-10 22:04:51 +08:00
public string BaseUrl;
/// <summary>
/// 项目标识。
/// </summary>
2026-04-10 22:04:51 +08:00
public string GameKey;
/// <summary>
/// 客户端版本号。
/// </summary>
2026-04-10 22:04:51 +08:00
public string ClientVersion;
/// <summary>
/// 设备标识。
/// </summary>
2026-04-10 22:04:51 +08:00
public string DeviceId;
/// <summary>
/// 是否启用调试日志。
/// </summary>
2026-04-10 22:04:51 +08:00
public bool EnableLog;
/// <summary>
/// 初始化时是否主动校验本地会话有效性。
/// </summary>
2026-04-10 22:04:51 +08:00
public bool ValidateSessionOnInitialize = true;
/// <summary>
/// 自定义登录态持久化实现。
/// </summary>
2026-04-10 22:04:51 +08:00
public IBriskTokenStore TokenStore;
/// <summary>
/// 自定义严重错误展示器。
/// </summary>
2026-04-10 22:04:51 +08:00
public IBriskErrorPresenter ErrorPresenter;
/// <summary>
/// 阻断错误确认后的退出处理逻辑。
/// </summary>
2026-04-10 22:04:51 +08:00
public Action ExitHandler;
/// <summary>
/// 校验并规范化初始化参数。
/// </summary>
2026-04-10 22:04:51 +08:00
public void Validate()
{
if (string.IsNullOrWhiteSpace(BaseUrl))
{
throw new ArgumentException("BriskOptions.BaseUrl is required.", nameof(BaseUrl));
}
if (string.IsNullOrWhiteSpace(GameKey))
{
throw new ArgumentException("BriskOptions.GameKey is required.", nameof(GameKey));
}
BaseUrl = NormalizeBaseUrl(BaseUrl);
}
private static string NormalizeBaseUrl(string baseUrl)
{
var normalized = baseUrl.Trim().TrimEnd('/');
if (normalized.EndsWith("/api", StringComparison.OrdinalIgnoreCase))
{
return normalized;
}
return normalized + "/api";
}
}