使用Unity开发多人游戏,有两套API:
-
偏底层一些,直接使用NetworkManager或者高级API(HL API)
-
使用NetworkTransport,与Unity 结合更紧密
参考资料
多人游戏是Unity的重要内容,在功能介绍中有非常详细的介绍。https://docs.unity3d.com/Manual/UNet.html
此外,Unity专门开辟了一个多人游戏域名存放多人游戏相关的文档:https://docs-multiplayer.unity3d.com/tools/current/install-tools
多人游戏网站介绍了三个组件,这三个组件分别具有自己的版本号:
-
Netcode for GameObjects 1.2.0
-
Transport 2.0.0
-
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模式