unity3d - 使用网络管理器中内置的统一有什么缺点?
问题描述
为什么 Unity 游戏开发者自己实现服务器而不是使用 unity 内置NetworkManager
?
貌似用 .js 可以轻松开发多款网络游戏NetworkManager
,但为什么开发者自己用 node.js 等实现服务器呢??
解决方案
我的理解是,两个单独的统一项目不可能使用 Unity HLAPI
(高级 API,这是正在使用的)相互交谈NetworkManager
。
这意味着您必须在同一个项目中拥有所有服务器代码和所有客户端代码。这确实不是问题,但是对于更大规模的项目,将服务器与客户端分开可以更容易使用,并且您不会将所有服务器代码推送给客户端以进行逆向工程。
假设您有一个基于回合的非实时游戏,例如拼字游戏,在这种情况下,使用节点或任何http
协议都是有意义的,在这种情况下,您有一个带有数据库的集中式服务器,用于持久化游戏状态。
但老实说,当你拥有 Unity TLAPI
(传输层 API)时,我真的不知道为什么有人会更喜欢纯套接字
我希望这有点帮助,而不仅仅是咆哮。
推荐阅读
- ios - NSFetchedResultsController 填充和更改 UITableView 行和部分时出错
- c# - 如何使用 C# 解决 InDesign 2020 COM 上的 0x80004002 错误?
- javascript - 我怎样才能知道特定元素的所有数据属性的长度?
- r - 将聚集在一个变量中的数据拆分为R中的多个变量
- spring - 如何使用 spring data couchbase 获取用于文档创建/删除的 couchbase db 事件
- python - 如何根据python中的索引更改字符串
- python - 对列表 Pt 的数据框列中的每个元素运行一个函数。2
- typescript - 尽管如文档所示,为 .env 设置 ConfigModule 仍不起作用
- azure-functions - Azure 函数无法处理二进制 Azure Servicebus 消息
- c++ - 成员函数的 C++ 'this' 参数
有类型'const ',但函数未标记为 const