当前位置: 首页 > article >正文

Unity插件-Mirror使用方法(二)组件介绍

目录

一、插件介绍

二、主要组件

1、核心管理组件

2、玩家与对象同步

3、数据同步与通信

4、生成与销毁控制

5、高级功能组件

6、安全与认证

7、实用工具脚本

​8、协同工作流程示例

三、基础配置

1、创建 NetworkManager

2、发布测试


一、插件介绍

Unity插件-Mirror使用方法(一)Mirror介绍-CSDN博客


二、主要组件

1、核心管理组件

  1. NetworkManager

    • 功能:核心管理器,处理服务器/客户端连接、场景切换、玩家生成等全局逻辑。
    • 关键设置:指定玩家预制体(Player Prefab)、最大玩家数、离线/在线场景配置。
  2. NetworkManagerHUD

    • 功能:内置的 UI 界面,提供快速调试按钮(启动服务器、客户端、主机模式)。
  3. NetworkIdentity

    • 功能:标记游戏对象为网络对象,赋予唯一网络标识(NetID)。所有需同步的对象必须挂载此组件。

2、玩家与对象同步

  1. NetworkTransform

    • 功能:自动同步游戏对象的位置、旋转和缩放。可配置同步频率和压缩方式。
  2. NetworkAnimator

    • 功能:同步动画状态机的参数(如布尔值、浮点数、触发器等)。
  3. NetworkBehaviour

    • 功能:自定义网络脚本的基类。通过重写方法(如 OnStartServer()OnStartClient())实现网络逻辑。

3、数据同步与通信

  1. SyncVar

    • 功能:变量同步属性。标记 [SyncVar] 的变量在服务器修改后自动同步到所有客户端。
  2. Command([Command])​

    • 用法:客户端调用服务器端方法(需以 Cmd 开头)。例如:CmdShoot()
  3. ClientRpc([ClientRpc])​

    • 用法:服务器调用客户端方法(需以 Rpc 开头)。例如:RpcUpdateScore()
  4. TargetRpc([TargetRpc])​

    • 功能:服务器向特定客户端发送指令(如私聊消息)。

4、生成与销毁控制

  1. NetworkStartPosition

    • 功能:标记玩家生成点,NetworkManager 可随机或按顺序分配生成位置。
  2. NetworkDestroy

    • 自动处理:带有 NetworkIdentity 的对象在服务器销毁时,会自动同步到客户端销毁。

5、高级功能组件

  1. NetworkProximityChecker

    • 功能:基于距离的可见性检测,仅同步在玩家视野范围内的对象。
  2. NetworkRoomManager

    • 功能:扩展的 NetworkManager,提供房间系统功能(如大厅等待、玩家人数匹配)。
  3. NetworkSceneChecker

    • 作用:防止客户端加载未授权的场景,增强安全性。
  4. NetworkDiscovery

    • 用途:局域网广播服务器信息,便于客户端自动发现可用服务器。

6、安全与认证

  1. NetworkAuthenticator

    • 功能:实现自定义认证逻辑(如账号密码验证、令牌校验)。
  2. TelepathyTransport

    • 特点:Mirror 默认的传输层组件,支持加密通信(如 WebSocket Secure)。

7、实用工具脚本

  • NetworkLogger:记录网络事件日志,用于调试连接问题。
  • NetworkStatisticGUI:显示实时网络数据(如流量、延迟)。

​8、协同工作流程示例

  1. 玩家加入
    • NetworkManager 生成玩家预制体(带 NetworkIdentity)。
    • NetworkTransform 同步玩家移动,NetworkAnimator 同步动画。
  2. 交互逻辑
    • 客户端调用 CmdFire 命令,服务器验证后通过 RpcSpawnBullet 在所有客户端生成子弹。

三、基础配置

1、创建 NetworkManager

新建空物体,命名为 NetworkManager

添加组件NetworkManager、NetworkManagerHUD(调试界面)和KCP Transport。

在 NetworkManager 中设置:

  • Player Prefab:玩家角色预制体(必须包含 NetworkIdentity 组件)。

  • Online/Offline Scene:连接成功/断开时加载的场景。

2、发布测试

在编辑器中运行一个相同场景,点击左上角Host(Server+Client)开启服务器加客户端。

将当前场景Build And Run,点击左上角HUD面板选择Client开启客户端。

可以看到生成了两个玩家预制体,连接成功


http://www.kler.cn/a/567439.html

相关文章:

  • 【学术会议论文投稿】Spring Boot实战:零基础打造你的Web应用新纪元
  • C++之 “” 用法(总结)
  • 【Oracle脚本】消耗CPU高的SQL抓取
  • JavaPro _JVM 知识点速记 JVM大全
  • 【AVL树】—— 我与C++的不解之缘(二十三)
  • GitCode 助力 python-office:开启 Python 自动化办公新生态
  • 机器学习的通用工作流程
  • 若依框架修改为多租户
  • OptiTrack光学跟踪系统:引领工厂机器人应用的革新浪潮
  • 克隆项目到本地
  • C++(Qt)软件调试---Linux 性能分析器perf(29)
  • lua学习(二)
  • Compose笔记(七)--Modifier
  • rustup-init.exe 安装缓慢的解决办法
  • CSS浮动详解
  • [密码学实战]Java实现SM2数字信封(结合SM4对称加密)生成与解析
  • 前后端常用正则
  • Ruby基础
  • QT异步编程之QtConcurrent
  • C语言(17)------------>数组的练习