身份验证
MCE 在线层通过 Nakama 支持多种身份验证方法。所有验证流程由 AuthService(位于 Auth/AuthService.cs)和 SessionManager 管理,两者均在启动时由 NakamaManager 自动初始化。

该界面随引擎一同提供,涵盖下面的三种流程:邮箱/密码、创建账户以及 SSO 提供商。这里没有任何模型图 —— 这是正在运行的游戏。
连接状态
ConnectionState 枚举跟踪在线连接的完整生命周期:
| 状态 | 描述 |
|---|---|
Disconnected | 未连接且未尝试连接 |
Connecting | 正在尝试建立连接 |
Connected | 连接并验证成功 |
Reconnecting | 连接丢失,正在尝试自动重连 |
Offline | 以离线模式运行(服务器不可用或已禁用) |
Failed | 所有重试后连接失败 |
您可以通过 NakamaManager.Instance.OnStateChanged 订阅状态变更。
NakamaManager.Instance.OnStateChanged += (state) =>
{
Debug.Log($"Connection state: {state}");
};
NakamaManager 上提供了一些便捷属性:
IsConnected— 仅在状态为Connected时返回true。IsOffline— 当状态为Offline或Disconnected时返回true。
身份验证方法
MCE 支持以下 AuthMethod 值:Email、DeviceId、Discord、Google、Apple、Facebook 和 Custom。
设备验证(自动登录)
最简单的方法。使用 SystemInfo.deviceUniqueIdentifier 自动创建匿名账户。适合移动设备和首次游戏。
bool success = await NakamaManager.Instance.ConnectWithDeviceAsync();
在底层,这是 NakamaManager 唯一的连接流水线,它调用 Client.AuthenticateDeviceAsync(deviceId, create: true):它在首次使用时创建新的 Nakama 账户,并在后续调用中登录。(AuthService 是覆盖在同一条流水线之上的薄外观,因此认证的方式只有一种。)出于隐私考虑,设备 ID 在日志中被截断。