Unity3D :多人游戏概述

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

多人游戏概述

重要提示:UNet 是一个已弃用的解决方案,新的多人游戏和网络解决方案(游戏对象的网络代码)正在开发中。有关更多信息和后续步骤,请参阅适用于游戏对象的 Unity 网络代码网站上的信息。

网络功能有两种用户:

  • 使用 Unity 制作多人游戏的用户。这些用户应从 NetworkManager 或高级 API 开始。
  • 构建网络基础设施或高级多人游戏的用户。这些用户应从网络传输 API 开始。

高级脚本 API

Unity 的网络功能有一个“高级”脚本 API(我们称之为 HLAPI)。使用此 API 意味着可以访问满足多用户游戏大多数常见要求的命令,而无需担心“较低级别”的实现细节。HLAPI 提供以下功能:

  • 使用 Network Manager 来控制游戏的联网状态。
  • 操作“客户端托管的”游戏,这种情况下的主机也是玩家客户端。
  • 使用通用序列化程序来序列化数据。
  • 发送和接收网络消息。
  • 将联网命令从客户端发送到服务器。
  • 执行从服务器到客户端的远程过程调用 (RPC)。
  • 将联网事件从服务器发送到客户端。

引擎和 Editor 集成

Unity 的联网系统集成在引擎和 Editor 中,因此便于使用组件和视觉辅助工具来构建多人游戏。该系统具有以下功能:

  • 用于联网对象的 NetworkIdentity 组件。
  • 用于联网脚本的 NetworkBehaviour。
  • 可配置的对象变换自动同步。
  • 脚本变量自动同步。
  • 支持在 Unity 场景中放置联网对象。
  • 网络组件

互联网服务

Unity offers Internet Services to support your game throughout production and release, which includes:

  • 配对服务
  • 创建比赛和通告比赛。
  • 列出可用的比赛和加入比赛。
  • 中继服务器 (Relay Server)
  • 基于互联网但无专用服务器的游戏。
  • 比赛参与者的消息传送。

NetworkTransport 实时传输层

We include a Real-Time Transport Layer that offers:

  • 基于 UDP 的优化协议。
  • 多通道设计可避免线头阻塞问题
  • 每个通道支持各种级别的服务质量 (QoS)。
  • 灵活的网络拓扑可支持对等架构或客户端/服务器架构。

身份验证

Unity 的网络系统实现了简单的内置身份验证功能,这些功能为验证会话提供了基本支持,但并不是可靠的身份验证解决方案。

可靠的身份验证可能是开发多人游戏项目的重要因素,因为它有助于防止恶意用户劫持玩家会话、冒充其他用户、使合法玩家与游戏断开连接或其他针对游戏或应用程序的恶意行为。

由于 Unity 仅提供简单的内置身份验证,因此如果您需要针对游戏或应用程序中的恶意操作的强大保护,则应使用第三方身份验证和加密解决方案,或使用插件(例如此参考实现和网络传输 API)自行实现它们。

示例项目

还可以深入了解我们的多人游戏示例项目,了解这些功能如何配合使用。可在此 Unity 论坛帖子中找到以下示例项目:

  • 多人 2D 坦克示例游戏
  • 具有配对功能的多人入侵者游戏
  • 具有配对功能的多人 2D 太空射击游戏
  • 最小的多人游戏项目

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :ParallelFor 作业 (mvrlink.com)

下一篇:Unity3D :设置多人游戏项目 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号