Unity Networking API文档翻译(一):Networking概述

写在翻译前的话:

     我使用过Photon,研究过Ulink这些Unity提供的多人在线游戏服务器组件,这些商业组件虽然很好很强大。但是对于一个独立开发者来说,4000多软妹币还是点多。总想找一个免费的。对于Unity5.2版本后提供的Unity Networking组件(简称UNet),国外已经有很多开发者在使用了,虽然稳定性还有待考验,但是unity官方是会不停更新的,主要的是免费的啊!官网没有中文翻译,所以自己准备把这块翻译下,有不好的地方敬请指出,共同完善这个中文文档。翻译的过程就当是学习的过程,其他开发者如果翻译过了,就当互相学习吧。

Networking概述

使用网络功能的用户按需求不同可分为下面2种情况:

  • 用户使用Unity开发一个多人在线的游戏,那么应该从学习NetworkManager或者High Level API开始。
  • 用户需要构建底层网络框架或者编写高级多人在线游戏,那么应该从NetworkTransport API开始学起。

High level scripting API

Unity网络模块有一个“高级”脚本API(我们通常叫HLAPI)。使用HLAPI可以不关心具体网络底层实施细节。它能提供多人在线游戏所需要的大多数常见操作命令。HLAPI提供以下功能:

  • 使用“Network Manager”组件来管理游戏的网络状态
  • 能制作“局域网联机”类游戏,这种游戏客户端可以作为一个游戏主机,其他客户端加入这个主机
  • 提供通用的序列化方法对数据进行序列化
  • 接收和发送网络消息
  • 从客户端向服务器发送网络命令
  • 服务器可以使用远程过程调用(RPCS)客户端
  • 服务器可以发送网络事件到客户端

Unity引擎和编辑器中的网络模块整合

Unity的网络模块已经集成到游戏引擎和Unity编辑器中了,开发者可以在可视状态下使用组件开发多人在线游戏。它提供了:

  • 一个NetworkIdentity组件提供给需要网络通信的实体
  • 一个NetworkBehaviour类提供给网络通信脚本
  • 游戏内物体坐标和方位的自动同步
  • 脚本变量的自动同步
  • 在Unity场景中提供可以拖放的网络模块
  • 各种网络组件

互联网服务

Unity提供了“互联网服务”用于支持开发者的真个产品开发和发布过程,包括:

  • 游戏配对服务
  • 游戏创建匹配和广告匹配
  • 提供配对列表和加入对战功能
  • 主机接替服务
  • 不需要专门的服务器而能在网络上联机
  • 给匹配的玩家们发送群发消息

实时的网络传输层

Unity提供了一个实时的网络传输层,包括:

  • 优化后的UDP协议层
  • 多通道设计用来避免数据堵塞问题
  • 每一个通道提供不同等级的多样化服务质量(QoS)
  • 灵活的网络拓扑结构,能提供点对点(P2P)以及客户端-服务器(CS)架构

项目案例

开发者可以仔细研究Unity官网提供的多人在线游戏项目,里面有多种游戏案例:

时间: 2024-10-27 17:05:55

Unity Networking API文档翻译(一):Networking概述的相关文章

Information Centric Networking Based Service Centric Networking

A method implemented by a network device residing in a service domain, wherein the network device comprises an information centric networking (ICN) transport layer and a service access layer (SAL) for handling context-aware service logistics and serv

Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

A method of transferring data between a software defined network (SDN) and an information-centric network (ICN), wherein the method comprises receiving a request from an SDN node for a specific named content stored on an ICN, wherein the request is e

[转*译]Networking API Improvements in Windows 10

在当今,以云优先,移动优先技术为宗旨的时代下,大多数Apps都至少有一些与web服务或网络上其他设备的集成.这些包括应用程序,它获取天气在线内容,新闻或体育比赛的分数,媒体或下载的播客,甚至对等网络游戏.聊天或VoIP应用.这些应用程序通过使用各种各样的网络API来共同构建通用应用程序平台. 在windows 10中,我们的网络团队投入了大量努力改善开发人员在使用这些网络API时在功能和灵活性方面的运行速度和内存性能.在这篇博客文章,我们将讨论一些关键我们在这方面取得改进,并向你说明该如何在您自

React Native Networking API

p.p1 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ".PingFang SC"; color: #454545 } p.p3 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px "He

Unity 官网教程 -- Multiplayer Networking

教程网址:https://unity3d.com/cn/learn/tutorials/topics/multiplayer-networking/introduction-simple-multiplayer-example?playlist=29690 1. 新建一个3D工程,在菜单 "File"  - "Save Scenes" ,保存场景为 "Main".注意,保存的文件放在Assets目录下. 2.菜单"GameObject&

NoVNC API 文档翻译

原文地址:https://github.com/novnc/noVNC/blob/master/docs/API.md 时间:2019-05-21 noVNC API The interface of the noVNC client consists of a single RFB object that is instantiated once per connection. noVNC客户端的接口由单个RFB对象组成,每个连接实例化一次 RFB The RFB object represe

Unity常用API

Vector3.sqrMagnitude 长度平方

AppWidget API文档翻译+little解读

一.AppWidgetProvider 首先一个Provider的配置: <receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android

Java Networking

1 Java Networking 2 Java Networking: Socket 3 Java Networking: ServerSocket 4 Java Networking: UDP DatagramSocket 5 Java Networking: URL + URLConnection 6 Java Networking: JarURLConnection 7 Java Networking: InetAddress 8 Java Networking: Protocol De