使用Unity开发多人游戏,有两套API:

  1. 偏底层一些,直接使用NetworkManager或者高级API(HL API)

  2. 使用NetworkTransport,与Unity 结合更紧密

参考资料

多人游戏是Unity的重要内容,在功能介绍中有非常详细的介绍。https://docs.unity3d.com/Manual/UNet.html

此外,Unity专门开辟了一个多人游戏域名存放多人游戏相关的文档:https://docs-multiplayer.unity3d.com/tools/current/install-tools

多人游戏网站介绍了三个组件,这三个组件分别具有自己的版本号:

  1. Netcode for GameObjects 1.2.0

  2. Transport 2.0.0

  3. Multiplayer Tools 1.1.0

tutorials:

https://docs-multiplayer.unity3d.com/netcode/current/tutorials/goldenpath_series/goldenpath_one/index.html

Unity多人游戏提供的服务

  • 匹配服务

  • 创建比赛和通告比赛

  • 列出可用的比赛、加入比赛

  • 中继服务器(Relay Server)

HLAPI的功能

  • 使用 Network Manager 来控制游戏的联网状态。

  • 操作“客户端托管的”游戏,这种情况下的主机也是玩家客户端。

  • 使用通用序列化程序来序列化数据。

  • 发送和接收网络消息。

  • 将联网命令从客户端发送到服务器。

  • 执行从服务器到客户端的远程过程调用 (RPC)。

  • 将联网事件从服务器发送到客户端。

NetworkManager

三种模式:

  • Server:

  • Client:

  • Host:主机模式

NetworkManager HUD

多人游戏的简单UI,主要用于测试多人游戏,它支持两种模式:

  • LAN模式

  • Matchmaker模式