【问题标题】:Unity5 - Make a server only for multiplayer gameUnity5 - 为多人游戏制作服务器
【发布时间】:2017-03-26 14:55:04
【问题描述】:

我遵循了一个在线多人游戏的Unity教程(here),架构如下:

但我想拥有这样的架构:

我想真正将在线游戏中的客户端部分和服务器部分分开。我是 Unity 新手,尤其是在线多人游戏,我真的不知道该怎么做。我不想要解决方案,但也许知道如何做到这一点。

非常感谢你帮助我。

【问题讨论】:

  • 简单的方法是保持原样,但“主”客户端不接受任何玩家输入(也没有任何玩家特定元素,例如角色、枪等)。
  • 所以例如使用if (Network.isServer) 测试,我禁用所有控制器?
  • 正确。 15 个字符。
  • 谢谢!我会试试的!

标签: unity3d unity5 unity-networking


【解决方案1】:

我很惊讶你没有学习 Tut 并发布这个问题。显然你可以制作单独的服务器。

正如统一UNet basic concept 所说:

在统一网络系统中,游戏有一个服务器和多个 客户。 当没有专用服务器时,其中一个客户端播放 服务器的角色 - 我们称这个客户端为“主机”

UNet多人游戏的三种模式:

网络多人游戏可以三种模式运行 - 作为客户端,作为专用服务器,或作为“Host”,它既是客户端又是服务器。网络旨在使相同的游戏代码和资产在所有这些情况下都能正常工作。开发单人版游戏和多人版游戏应该是一回事。

NetworkManager 具有进入这些模式的功能:

NetworkManager.StartClient()
NetworkManager.StartServer()
NetworkManager.StartHost()

Check UNetManager for more details

【讨论】:

    【解决方案2】:

    您可以打开一个 Unity 实例作为专用服务器。

    NetworkManager.StartServer();

    但是对于当前的 UNET 状态,每个 Unity 实例只能有 1 个房间。

    这意味着如果你想同时打开多个游戏室,你会花费很多硬件。

    以无头模式运行(无 GUI)会对您有所帮助,但这还不够(目前我已经在 DO 上这样做了)。

    所以我的建议是,如果您希望游戏中有大量用户,请不要使用 UNET。

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 2014-09-17
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      相关资源
      最近更新 更多