【Unity】Mirror网络框架

目录

前言

‌Unity Mirror 是一种支持状态同步的网络框架‌。

一、安装 Mirror

推荐通过 ‌Package Manager‌ 安装,确保兼容性:

  1. 打开 Unity 编辑器,进入 ‌Window > Package Manager‌。
  2. 点击左上角 ‌+‌ → ‌Add package from git URL...‌
  3. 输入以下地址并回车:
csharp 复制代码
https://github.com/MirrorNetworking/Mirror.git#release
  1. 安装完成后,菜单栏会出现 ‌Mirror‌ 选项。

⚠️ 注意:若使用 Unity 2020.3 以下版本,可能需手动添加依赖包 com.unity.ugui@2.0.0 和 com.unity.nuget.newtonsoft-json@3.0.0 到 Packages/manifest.json

二、常用组件介绍

组件 用途
NetworkManager‌ 核心控制器,管理连接、场景、玩家生成
NetworkIdentity‌ 每个网络对象必须拥有,用于唯一标识
NetworkTransform‌ 同步位置、旋转、缩放,支持插值与压缩 ‌‌
NetworkRoomManager‌ 管理大厅-房间-游戏流程(适合 FPS/MOBA)‌‌
NetworkManagerHUD‌ 快速调试用 GUI(‌仅限开发阶段‌,发布时移除)‌‌
KCP Transport‌ 低延迟传输协议,适合实时游戏(默认推荐)‌‌

上传到游戏服务器(Mirror内部同步)

如果目的是将数据上传到你的游戏服务器,以便同步给其他玩家或在服务器上保存状态,这是Mirror最基础的功能,也是最常见的用法。主要有三种方式:

  1. 网络消息 (NetworkClient.Send):最灵活、直接的方式。你可以从客户端向服务器发送自定义的网络消息。这是Mirror提供的"自定义网络消息"功能示例。
  2. 命令 (Command):主要用于客户端请求服务器执行操作,并可以附带参数。这是一个典型的Command用法示例。
  3. 状态同步 (SyncVar):从服务器"上传"数据到客户端。它不仅能从服务器同步到客户端,也能借助Command从客户端上传到服务器,非常适合保存血量、等级等频繁变化的状态。

上传到Web服务器 / 数据库(持久化存储)

如果你想将用户数据(如成就、金币)永久保存到数据库,或进行账号验证,那么你上传的对象是一个独立的 "后台服务器"或"Web服务"。

在这种情况下,Mirror本身不负责,你需要使用Unity通用的 UnityWebRequest。当主机端也是客户端时,可以混合使用。

完整方案参考

对于一些上线项目,你也可以参考从Mirror到数据库的完整技术栈:

  • Mirror:构建游戏的核心网络逻辑。
  • PlayFab:微软Azure的游戏后端平台,提供账号、排行榜、数据存储等成熟的云端服务。
  • NHibernate + MySQL:自建服务器的选择,用于MySQL数据库的C#映射。

【推荐100个unity插件之8】实现多人在线联机游戏------Mirror插件的使用介绍(附项目源码)

相关推荐
叶帆3 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君3 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
会思考的猴子3 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
心前阳光3 天前
Unity资源导入之自动化资源导入
unity·自动化·游戏引擎
心前阳光3 天前
Unity之2021.3.45f2c1发布安卓程序遇到的问题
android·unity·游戏引擎
纪纯4 天前
PicoVR Unity Integration SDK 3.4 常用交互API
unity·游戏引擎·vr·pico
龙智DevSecOps解决方案4 天前
3A 游戏优化技术栈:如何打通引擎级分析工具与 DevOps 持续集成管线?
unity·性能优化·游戏开发·技术美术·perforce·unrealengine
葛兰岱尔4 天前
从 SolidWorks 到 Three.js,从 Inventor 到 Unity——制造业CAD模型“几何-语义一体化“转换,不再是天方夜谭!
开发语言·javascript·unity
玉夏4 天前
【Shader基础】UV 与纹理采样 Part1
unity·着色器·uv
zdr尽职尽责4 天前
Unity录像功能
学习·ui·unity·游戏引擎