【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插件的使用介绍(附项目源码)

相关推荐
丁小未10 小时前
基于MVVM框架的XUUI HelloWorld 新手教程
unity·性能优化·c#·游戏引擎
丁小未11 小时前
基于MVVM框架的XUUI MoreComplex案例
unity·c#
EQ-雪梨蛋花汤11 小时前
【Unity笔记】VR 一体机画面锯齿、模型边缘闪烁、接缝抖动排查:MSAA、Mipmap、Render Scale、Z-Fighting 全流程记录
笔记·unity·vr
YigAin15 小时前
Unity Spine 资源出现白边的解决办法
unity·游戏引擎·spine
郝学胜-神的一滴1 天前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
真鬼1233 天前
【Unity WebGL】内嵌网页与双向通信
unity·游戏引擎·webgl
zyh______4 天前
C#语法糖(按照实用性排序)
unity·c#
avi91114 天前
[AI教做人]CinemachineCamera 各项调整配置参数入门 + Profiler
unity·游戏开发·camera·cinemachine·visual camera·镜头配置
郝学胜-神的一滴5 天前
[简化版 GAMES 101] 计算机图形学 16:纹理走样、Mipmap、三线性插值、各向异性过滤原理全解
unity·游戏引擎·godot·图形渲染·three.js·opengl·unreal
吴梓穆5 天前
untiy TextMeshPro (TMP) text 操作 中文字符集 字体材质操作(添加纹理 添加描边 添加阴影)
unity