设为首页收藏本站

微软Hololens全息现实网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

一键登录:

查看: 1055|回复: 1

Unity Networking优化Socket接口的通讯传输

[复制链接]
发表于 2015-12-4 11:18:21 | 显示全部楼层 |阅读模式

Unity在5.1版本为开发者提供了全新的多玩家在线工具Unity Networking。通过此项技术,用户可以实现包括通讯层的数据传输,低阶的NAT支持以及高阶的游戏配对。Unity希望开发者们能够创造出支持任意玩家数量的多人在线游戏。多人在线的实现方法我们可以将多人在线功能的实现分为底层和上层两个部分。 ...

Unity在5.1版本为开发者提供了全新的多玩家在线工具Unity Networking。通过此项技术,用户可以实现包括通讯层的数据传输,低阶的NAT支持以及高阶的游戏配对。Unity希望开发者们能够创造出支持任意玩家数量的多人在线游戏。多人在线的实现方法我们可以将多人在线功能的实现分为底层和上层两个部分。

42.jpg


底层就是通讯层,通过NetworkTransport类进行实现。这一层内容在Unity引擎中是通过C++编写,其主要目的是优化Socket接口的通讯传输。在其之上,我们同时提供了使用C#编写的、以DLL文件形式存在的high level API。这些文件我们已经开源,用户只需遵守MIT/X11协议,便可以根据自身需要,对代码进行修改与替换。两个抽象层的使用介绍可扩展DLL文件中的内容我们可以将其看为两部分:high level和low level。当使用NetworkClient 和NetworkServer类时,你可以在low level层面手动地建立连接,而使用NetworkManager和NetworkLobbyManager则可以实现high level的访问。


将上述NetworkClient等组件添加到游戏对象后,即可在该游戏对象的inspector窗口获得相应的链接选项以及内置的HUD组件。当然,你也可以修改、扩展这些类,实现自定义的行为和功能。上述内容都是基于C/S架构以及服务器授权模式实现。当你想更好地了解和使用通讯层,或者去实现你自定义的 high level API时,这些类会是绝佳的参考资料。注意事项我们所提供的资源包含三个VS工程文件:分别针对真机,编辑器,以及编辑器运行。"编辑器运行时"在编辑器进入playmode时执行。引擎内部的Update方法必须可以找到NetworkIdentity.UNetUpdate()方法,否则该Update将无法正常运行。在编辑器中,我们还将实时的进行一些代码编译,该工具叫做UNetWeaver,我们同时在考虑将这部分内容开源。这个工具是将NetworkBehavior编译成一系列的序列化代码,Command/ClientRPC程序,和各种查询列表。扩展时必须注意保持名称一致(如SyncVar、Command等),以保证相对应的功能可正常使用。

                    




上一篇:12月Unity 2D新功能发布会已开放报名 现场更有圆桌讨论
下一篇:又有报告说2020年VR市场 看来各家对此认识不同
发表于 2015-12-4 11:28:22 | 显示全部楼层
很精彩啊
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

注册验证邮件查收提醒:

由于各大邮箱政策原因,

如果没收到邮件提醒,

您的注册验证邮件可能

被投送到您邮箱的垃圾箱,

请注意查收验证哦


QQ|小黑屋|Hololens全息现实网 ( 京ICP备15026232号   点击这里给我发消息

GMT+8, 2018-1-17 01:28 , Processed in 0.399132 second(s), 36 queries .

Powered by Hololens全息现实网 X3.2

© 2001-2017 Hololens全息现实网

快速回复 返回顶部 返回列表