UNET学习笔记1 - 总览
UNET为两类人设计:
(1)使用Unity开发简单多人在线游戏。这类用户可以从NetworkManager或者the High Level API开始;
(2)开发复杂多人在线游戏或者开发网络服务。这类用户可以从NetworkTransport API开始。
高级API
High Level API简称为HLAPI,不用去关心底层(low level)的实现就可以去开发简单的多人在线游戏,基本可以涵盖大部分用户的需求。HLAPI包含:
- 可以通过Network Manager控制游戏用户的网络状态;
- 可以开发客户端、服务器都在客户端的游戏;
- 使用通用序列化去序列化数据;
- 发送或者接收网络消息;
- 从客户端向服务器发送远程调用;
- 从服务器向客户端发送远程调用;
- 从服务器向客户端发送事件消息;
引擎和编辑器集成
Unity已经把UNET集成进了引擎和编辑器中,你可以:
- 使用NetworkIdentity来标识网络物体;
- 继承 NetworkBehaviour 来编写网络脚本;
- 有一个可以配置网络位置同步组件;
- 提供了可以自动同步的脚本变量;
- 以及其它一些网络组件
网络服务
Unity还提供了一些网络服务,来支持多人游戏的开发和发布。包含:
- Matchmaking 服务;
- 创建组队,广告组队;
- 加入组队,列出组队列表;
- 中续服务;
- 通过互联网,并不用专用服务器玩游戏;
- 为组队进行消息路由;
NetworkTransport 实时传输层
实时传输层提供:
- 优化的基于UDP的协议;
- 多通道设计,有效避免head-of-line阻塞;
- 每个通道提供了多个级别的QOS;
- 柔性的拓扑结构,能很好支持P2P或者CS框架;
项目示例
官方提供了一些例子,可以去看这些功能怎么使用在一起;
- 多人2D 坦克;
- 带组队的多人侵略游戏;
- 带组队的多人太空射击游戏;
- 迷你多人项目;
例子网站:
http://forum.unity3d.com/threads/unet-sample-projects.331978/