跳转到内容

Mirror 传输层

Mirror 传输层属于 联机大厅 的 Unity 专用子能力。它不是主 SDK 的替代品,而是用于让已经使用 Mirror 的项目将 Mirror 收发连接接入 IGP 房间数据面。

引擎状态说明
UnityPreview通过 cn.indiegp.sdk.unity.mirror-transport 提供。
GameMaker不适用GameMaker 不使用 Mirror。
Godot不适用Godot 不使用 Unity Mirror。
  • 项目已经使用 Unity Mirror。
  • Mirror 版本为 v89.0.0 或更高版本;推荐 v90.0.0 或更高版本。
  • 已安装 cn.indiegp.sdk.unity 主包。
  • 已安装 cn.indiegp.sdk.unity.mirror-transport 可选包。
  • 已完成 房间 的房间主流程。

先安装主包:

cn.indiegp.sdk.unity

如果项目已经使用 Mirror,再安装可选包:

cn.indiegp.sdk.unity.mirror-transport

场景中需要保留以下对象:

IGPRuntimeManager
IGPMirrorTransport
Mirror NetworkManager

然后将 Mirror 的 NetworkManager.transport 指向 IGPMirrorTransport

业务代码仍然按 Mirror 原有方式编写;IGP 只负责将底层传输接入当前房间。

using Mirror;
using UnityEngine;
using IGP.UnitySDK.MirrorTransport;
public sealed class MirrorTransportCheck : MonoBehaviour
{
[SerializeField] private NetworkManager networkManager;
[SerializeField] private IGPMirrorTransport igpTransport;
private void Awake()
{
networkManager.transport = igpTransport;
}
}

完整示例工程见 samples/unity/MirrorTransportDemo

引擎检查点
UnityMirror NetworkManager.transport 已指向 IGPMirrorTransport,host / client 可通过 IGP 房间连接。
GameMaker不适用。
Godot不适用。
  • Mirror 仍走原传输层:检查 NetworkManager.transport 引用。
  • 找不到 IGPMirrorTransport:确认已安装 Mirror 可选包。
  • 能进入房间但 Mirror 不可用:先确认主包房间流程可用,再排查 Mirror 配置。