欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > Unity插件-Mirror使用方法(四)组件介绍(​Network Manager HUD)

Unity插件-Mirror使用方法(四)组件介绍(​Network Manager HUD)

2025/5/14 8:33:36 来源:https://blog.csdn.net/qq_44501691/article/details/146000176  浏览:    关键词:Unity插件-Mirror使用方法(四)组件介绍(​Network Manager HUD)

目录

一、插件介绍

二、主要组件

Network Manager

三、Network Manager HUD

1、组件介绍

2、NetworkManagerHUD 的核心功能

快速操作按钮

状态信息显示

场景切换支持

调试辅助

3、关键属性与配置

4、HUD 界面详解

【主机模式(服务器+客户端)】

注意事项:

【客户端模式】

连接互联网主机时:

多实例测试技巧:

多设备测试须知:

连接流程:

【纯服务器模式】

点击此按钮将启动专用服务器:

优势说明:

部署建议:

5、基本使用示例

步骤1:启用 HUD

步骤2:测试连接

步骤3:观察状态

6、自定义 HUD 界面

示例:简化版 HUD

高级自定义

7、适用场景

8、注意事项

生产环境禁用

与 NetworkManager 的协作

布局适配

9、常见问题与解决


一、插件介绍

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


二、主要组件

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

Network Manager

Unity插件-Mirror使用方法(三)组件介绍(Network Manager)-CSDN博客


三、Network Manager HUD

1、组件介绍

在 Unity Mirror 中,NetworkManagerHUD 是一个内置的调试界面组件,专门用于快速测试和可视化网络功能。它为开发者提供了一个简单的图形用户界面(GUI),无需编写额外代码即可实现服务器/客户端的启动、连接和基础操作,非常适合原型开发和快速调试。

网络管理器HUD(“抬头显示”)是一个快速启动工具,可帮助您立即开始构建多人游戏,而无需先为游戏创建/连接/加入构建用户界面。它允许您直接进入游戏玩法编程阶段,意味着您可以在开发计划后期构建自己的版本控件。

但请注意,该HUD不适合包含在最终发布的游戏中。其设计初衷是帮助开发者快速入门,您应该在后续开发中创建自己的UI界面,让玩家以符合游戏风格的方式进行游戏查找和加入。例如,您可能希望定制屏幕设计、按钮样式和可用游戏列表,以匹配游戏的整体视觉风格。

要开始使用网络管理器HUD,您可以选择以下两种方式之一:

  1. 将HUD组件添加到已包含网络管理器组件的场景对象上
  2. 在场景中创建空游戏对象(菜单:GameObject > Create Empty),然后向新对象添加网络管理器HUD组件


    2、NetworkManagerHUD 的核心功能

    快速操作按钮

    提供直观的按钮,支持以下功能:

    1. 启动 LAN Host(同时作为服务器和客户端)。
    2. 启动 LAN Server(仅作为服务器)。
    3. 启动 LAN Client(连接到本地服务器)。
    4. 输入 IP 地址连接远程服务器。
    5. 停止服务器/客户端,断开连接。

    状态信息显示

    1. 实时显示当前网络模式(服务器、客户端、未连接)。
    2. 显示连接状态(如 ConnectedDisconnected)。
    3. 显示当前场景名称。

    场景切换支持

    1. 通过界面按钮切换场景(需配合 NetworkManager 的 Online Scene 和 Offline Scene 配置)。

    调试辅助

    1. 在 Editor 和 Standalone 构建中均可使用。
    2. 支持快速测试多人交互逻辑(如玩家生成、同步验证)。

    3、关键属性与配置

    在 Unity Inspector 面板中,NetworkManagerHUD 的主要配置如下:

    属性说明
    Show GUI

    是否显示 HUD 界面(开发阶段建议开启,发布时可禁用)。

    Offset X

    设置HUD界面距离屏幕左边缘的水平像素偏移

    Offset Y

    设置HUD界面距离屏幕上边缘的垂直像素偏移


    4、HUD 界面详解

    默认界面包含以下元素(根据网络状态动态变化):

    默认状态下,HUD处于"服务器+客户端"模式,提供以下功能按钮:

    【主机模式(服务器+客户端)】

    点击此按钮将在本地网络以主机身份启动游戏。该客户端兼具服务器和玩家双重身份,使用检查器中网络信息部分的配置进行托管。

    成功启动后,HUD将切换至网络详情显示界面,并提供【停止】按钮用于终止托管并返回主菜单。

    注意事项:
    • 作为主机启动游戏后,其他玩家可连接至该主机加入游戏
    • 点击【停止】按钮将断开与主机的连接并返回主菜单

    【客户端模式】

    连接互联网主机时:
    1. 在客户端按钮右侧的文本框中输入主机地址(默认"localhost"指向本机)
    2. 支持输入IPv4/IPv6地址或完整域名(如game.example.com),传输层将通过DNS解析域名
    3. 点击【客户端】按钮尝试连接指定地址
    多实例测试技巧:
    • 在同一计算机上运行多个游戏实例时,使用默认"localhost"地址测试多人交互
    • 建议创建独立构建版本并在本机多次启动,这是快速验证网络交互功能的常用方法
    多设备测试须知:
    • 主机计算机需告知客户端其IP地址:
      • 局域网客户端使用本地IP
      • 远程客户端需要主机路由器的公网IP
    • 需配置防火墙规则和端口转发以接受连接(无论来自局域网或互联网)
    连接流程:
    1. 输入目标IP(本机测试可保留"localhost")
    2. 点击【客户端】启动连接
    3. 连接尝试期间显示【取消连接】按钮
    4. 成功连接后显示【停止】按钮,用于终止客户端游戏进程

    【纯服务器模式】

    点击此按钮将启动专用服务器:
    • 仅作为连接节点,不参与实际游戏
    • 所有玩家必须通过客户端连接
    • 该模式通常称为"专用服务器"
    优势说明:
    • 提升所有连接玩家的性能表现(服务器无需处理本地玩家逻辑)
    • 适用于需要完全掌控服务器的场景(如反作弊),因为游戏权威仅在服务端
    部署建议:
    • 在具有公网IP的计算机上以纯服务器模式运行
    • 适合需要提供互联网游戏服务(而不仅限局域网)且需保持服务器控制权的场景

    5、基本使用示例

    步骤1:启用 HUD

    1. 在场景中创建一个空对象(如 NetworkManager)。

    2. 添加 NetworkManager 组件,并配置基础参数(如 Player Prefab、端口号)。

    3. 在同一对象上添加 NetworkManagerHUD 组件。

    4. 确保 Show GUI 属性为 true

    步骤2:测试连接

    • 本地测试:点击 LAN Host 启动本地服务器并自动加入为玩家。

    • 远程连接:输入目标 IP 地址,点击 Remote Client 连接。

    步骤3:观察状态

    • 在游戏运行时,HUD 会显示当前网络状态和操作按钮:


    6、自定义 HUD 界面

    虽然默认界面适合快速测试,但可通过继承 NetworkManagerHUD 并重写 OnGUI() 方法实现自定义界面:

    示例:简化版 HUD

    using UnityEngine;
    using Mirror;public class CustomNetworkHUD : NetworkManagerHUD
    {public override void OnGUI(){// 仅在未连接时显示自定义按钮if (!NetworkClient.isConnected && !NetworkServer.active){GUILayout.BeginArea(new Rect(10, 10, 200, 100));if (GUILayout.Button("Start LAN Host")){manager.StartHost();}if (GUILayout.Button("Join LAN Client")){manager.StartClient();}GUILayout.EndArea();}}
    }

    高级自定义

    • 修改按钮样式、布局或添加额外信息(如玩家数量、延迟显示)。
    • 结合 NetworkManager 的回调事件(如 OnClientConnect)动态更新界面。

    7、适用场景

    1. 快速原型开发:无需编写 UI 代码即可测试多人功能。
    2. 调试网络问题:实时观察连接状态和操作反馈。
    3. 演示与分享:方便非技术人员操作(如测试人员启动服务器/客户端)。

    8、注意事项

    生产环境禁用

    1. 正式发布时应禁用 HUD(取消勾选 Show GUI 或移除组件)。
    2. 用自定义 UI 替代(如主菜单的“创建房间”/“加入房间”按钮)。

    与 NetworkManager 的协作

    1. HUD 依赖场景中的 NetworkManager 实例,确保二者在同一对象或手动关联。

    布局适配

    1. 默认 HUD 位置可能在屏幕左上角,可通过 Offset X/Y 调整。
    2. 在高分辨率下可能需要缩放 UI(通过修改 GUI.skin 或使用 UGUI 替代)。

    9、常见问题与解决

    问题解决方法
    HUD 界面未显示检查 Show GUI 是否启用,且场景中有 NetworkManager 组件。
    点击按钮无反应确认 NetworkManager 配置正确(如 Player Prefab 已赋值)。
    自定义 HUD 覆盖默认逻辑继承 NetworkManagerHUD 时,避免直接修改基类方法,优先调用 base.OnGUI()
    HUD 在 WebGL 中失效WebGL 需使用 WebSocket 传输层,检查 NetworkManager 的传输协议配置。

    版权声明:

    本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

    我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

    热搜词