原文传送门:Networking Overview
译文:
网络概览
使用网络功能的用户有两种类型:
- 用unity制作多人游戏的用户。他们应该从NetworkManager 或者High Level API开始。
- 搭建网络架构或者高级多人游戏的用户。他们应该从NetworkTransport API开始。
高级脚本API
unity的网络系统有一套高级的脚本API(我们也称之为HLAPI)。使用HLAPI意味着你可以不用关心底层实现细节就能使用覆盖了绝大多数多人游戏需求的指令。HLAPI可以让你做以下的事:
- 使用Network Manager控制游戏的联网状态。
- 操作客户端主机,这个主机同样是一个玩家客户端。
- 使用通用序列化器序列化数据。
- 发送和接受网络消息。
- 从客户端向服务器发送网络指令。
- 从服务器向客户端发起RPC调用。
- 从服务器向客户端发送网络事件。
引擎和编辑器集成
unity的网络被集成到了引擎和编辑器,允许你使用组件和视觉教具来构建你的多人游戏。它提供了:
- 一个用在联网对象上的NetworkIdentity组件。
- 一个用于网络脚本的NetworkBehaviour基类。
- 可配置的自动同步状态的对象变换NetworkTransform。
- 脚本变量的自动同步。
- 支持在unity场景里放置网络对象。
- 各种网络组件。
网络服务
unity通过产品和发布提供了网络服务来支持你的游戏,包括:
- 匹配服务
- 创建比赛和推广比赛
- 列出可访问的比赛和加入比赛
- 转播服务器
- 没有专用服务器的情况下通过互联网游戏
- 路由比赛参与者的消息
网络传输实时传输层
我们提供了一个实时传输层:
- 优化的基于UDP的协议
- 多通道设计来避免队首阻塞问题
- 每个通道支持各种等级的服务质量(QoS)
- 复杂的网络拓扑结构,支持点对点或者客户端-服务器架构。
样例工程
你可以研究下我们的多人示例工程来看下这些功能是如何组合在一起的。下面的示例工程可以在这个unity论坛邮件中找到:
- 多人2D坦克例子游戏
- 带有匹配功能的多人侵略者游戏
- 带有匹配功能的多人2D太空射击
- 最小的多人工程