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

相关推荐
小贺儿开发7 小时前
Unity 程序员编曲花絮:汪峰《河流》细节修复
科技·学习·unity·程序员·音乐·demo·写代码
598866753@qq.com7 小时前
Unity UniText笔记
unity·unitext
鼎艺创新科技19 小时前
不依赖 UE/Unity:我们如何从零搭建一套国产三维 GIS 渲染引擎
人工智能·算法·unity·游戏引擎·三维电子沙盘
huihui3611 天前
校友网管理软件技术选型框架:基于功能核验与系统架构的量化评估
unity·系统架构·游戏引擎
五仁烧饼1 天前
Unity性能优化系列设置篇 - URP 移动端设置基线与分档策略
unity·游戏引擎
新手unity自用笔记1 天前
unity基于Socket的网络学习
网络·网络协议·学习·unity·c#·游戏引擎
心前阳光1 天前
Unity之XR Interaction Toolkit | IPointerDownHandler问题
unity·游戏引擎·xr
帅_shuai_2 天前
unity 静态字段内存查找工具
unity·游戏引擎
鹿野素材屋3 天前
Unity超轻量级中文语音播报,仅5兆大小,无需联网即可使用,适用于弹幕、提示等动态语音播出
unity·游戏引擎
玖玥拾4 天前
Unity3D RPG 入门项目(八)游戏设置面板、帧率控制、快捷技能药品栏、技能解锁系统
游戏·3d·unity·游戏引擎