0

我们正在为我们的机构创建一个 MMO 风格的虚拟校园,我需要一些关于使用 UNet 的最佳实践和实施的建议。阅读后我得出结论,我可能应该使用一个具有单独场景的项目来构建服务器。所以我设置了它,它立即运行并启动了一个专用服务器。游戏场景随后会自动连接,但即使已将其添加到网络管理器中,玩家也不会被实例化。服务器场景只是一个带有 UNet 网络管理器组件的空白场景。

我对这种情况的看法是,为了更好的用户体验,游戏场景和所有用户交互都应该发生在客户端,然后更新服务器,然后服务器更新其他客户端。(随意拍下来)。

如果上述方法正确,那么如何将服务器场景设置为幽灵而不实际处理任何信息?

编写一个将某些变量发送到服务器而不是使用 UNet 网络组件的脚本是否有益,因为我认为它们会同步整个对象?

UNet 是否允许服务器仅充当更新客户端的中介而不是游戏的完整实例的那种功能?

我想我真正得到的是,使用 UNet 创建 MMO 风格、专用、无头、网络设置的最佳方法是什么?

4

1 回答 1

0

我不会将 UNET 的 HLAPI(高级 API)用于 MMO。它为您提供了很好的开箱即用组件,例如 Network Transform 和 Network Manager,但您不会找到您范围内的项目所需的灵活性。这可能是可能的,但整个 HLAPI 感觉就像是为支持“主机”混合而构建的,它既是服务器又是客户端(每个人都被限制在主机运行的一个场景中)。

查看低级 API (LLAPI)。它只是 UDP 套接字之上的一个薄的 Unity 优化层。它是一个从客户端发送消息的简单框架 --> 服务器,因此完全由您来构建移动玩家、管理场景更改等的引擎。不过,这样,您的服务器可以在完全不同的 Unity 上运行仅用于处理客户端消息的应用程序。

于 2018-02-01T18:35:38.300 回答