• 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官网提供的多人在线游戏项目,里面有多种游戏案例:

  • 相关阅读:
    js阶段循环(for,while,do-while,for-in),判断(if,switch),练习题
    翻牌器
    用 VSCode 调试网页的 JS 代码
    图形化设置数据库规则
    js中ES6数据结构Map 、Set 、WeakMap 、 WeakSet
    css的filter方法,给图片添加滤镜
    使用<a-select>时,placeholder不起作用,提示语不显示
    Vue数据更新但页面没有更新的多种情况
    react事件处理-函数绑定
    在css中使用js定义的变量
  • 原文地址:https://www.cnblogs.com/wangergo/p/5021310.html
Copyright © 2020-2023  润新知