跳转到内容

Unity Multiplayer

Unity 联机能力由 cn.indiegp.sdk.unity.multiplayer 提供,主包 cn.indiegp.sdk.unity 不包含联机类型或 socket。

  • IGP.Multiplayer:Hosted、Room、Realtime、KCP/UDP、网络诊断和事件,不依赖 Mirror。
  • IGP.Multiplayer.Mirror:可选 Mirror transport,仅在项目定义 MIRROR 时编译。
IGPRuntimeRoot
├── IGPRuntimeManager
└── IGPMultiplayerRuntime
MirrorNetworkRoot (可选)
├── IGPMirrorTransport
└── Mirror NetworkManager

IGPRuntimeManagerIGPMultiplayerRuntime 使用同一份 IGPConfig。调用一次 IGPRuntimeManager.InitializeAsync() 即可;房间与玩家上下文有效后,Multiplayer 会自动申请 descriptor 并建立 KCP/UDP。

KCP 是 Ready 的必要条件;raw UDP 是独立可选通道。UDP 故障不会断开健康 KCP,也不会把 unreliable 数据回退到 KCP。

KCP 中断后按 1s, 2s, 5s, 10s, 30s 退避重新申请 descriptor,之后保持 30 秒。底层恢复不会自动重启已经断开的 Mirror 逻辑连接,也不会控制 Mirror.NetworkManager

IGPMirrorTransport.runtimeManager 显式指向场景中的 IGPMultiplayerRuntime,再赋给 NetworkManager.transportClientConnect()ServerStart() 只保留逻辑连接意图,不负责 KCP/UDP 建连。

Unity 代码案例见 samples/unity/2022.3.62f3c1/sample/Examples/