孙广东 2015.7.12
有两种网络功能的用户:
• 用户使用Unity 制作多人游戏。这些用户应该开始使用NetworkManager 或者 High Level API.
• 用户建设网络基础设施 或 高级的多人游戏。这些用户应该开始使用 NetworkTransport API。
High level scripting API 高层次的脚本 API
Unity 的网络有一个“high-level” 的脚本 API (它我们将称为 HLAPI)。使用这种方法可以访问命令 涵盖最常见的要求,用户游戏而无需担心的“lower level” 的执行细节。HLAPI,您可以:
• 使用 “Network Manager”.控制游戏的网络状态。
• 主机是一个 player 客户端。运营 “Network Manager”.游戏
• 使用通用的序列化程序的数据进行序列化。
• 发送和接收messages邮件。
• 将网络的命令从客户端发送到服务器。
• 远程过程调用 (Rpc) 从服务器向客户端。
• 将网络的事件从服务器发送到客户端。
Engine and Editor 集成
Unity 的网络集成到engine 和 editor,允许您使用 组件和 visual aids,建立您的多人游戏。它提供了:
• 网络对象 的 NetworkIdentity 组件。
• NetworkBehaviour 网络的脚本。
• 可配置 自动同步 对象的变换。
• 自动同步的脚本变量。
• 支持网络的对象置于Unity的场景。
• Network组件
Internet Services
Unity 提供互联网服务,以 支持你的游戏,在整个生产和发行,其中包括:
• Matchmaking service
• Create matches and advertise matches.
• List available matches and join matches.
• Relay server
• Game-play over internet with no dedicated server.
• Routing of messages for participants of matches.
NetworkTransport 实时传输层
Unity 包括提供实时传输层:
• 优化基于 UDP 协议。
• Multi-channel design to avoid head-of-line blocking issues 多通道设计,以避免头的线阻塞问题
• 每个通道支持各种levels 的服务质量 (QoS) 。
• 灵活的网络拓扑结构,支持对等 或 客户机-服务器体系结构。
High Level API
高级别 API (HLAPI) 是一个系统 Unity游戏的建设多人游戏功能。它建立在 较低级别的传输实时通信层, 且处理多人游戏的许多常见任务。而传输层支持任何形式的网络拓扑结构,HLAPI 是一个服务器的权威系统; 虽然它允许在同一时间 是客户端和服务器的参加者之一, 所以没有专用的服务器进程 。这工作结合了 互联网服务,允许将发挥在互联网上与 小工作从开发人员的多人游戏。
HLAPI 是Unity一套新的网络命令集成,在新的命名空间中 ;UnityEngine.Networking 它集中 在易用性和 迭代开发,如为多人游戏,提供有用的服务:
• 消息处理程序
• 通用高性能序列化
• 分布式对象管理
• 状态同步
• Network classes: Server, Client, Connection, etc
HLAPI 是由一系列层添加功能: