0

我正在尝试了解 Unity 网络开发中的数据同步。我面临的第一个问题是了解 unity3D 服务器客户端模型。

1

  • 我的基本理解是一台机器表现为服务器+客户端,而另一台只是客户端。
  • 但是在从 PC 构建托管的以下图形中,根本没有服务器????
  • 当我现在从 Unity Editor 托管它时,服务器 + 客户端都有.. 为什么???

2

  • 我试图解决的另一个问题是做出这样的行为,如果我在服务器上按下空格按钮,它会增加服务器分数。

  • 当在客户端按下空间时,客户端也会如此,它会增加客户端分数。

  • 根本没有进展,因为我无法弄清楚如何将服务器日期与客户端数据分开。尝试获取两个不同 Text 对象的引用,如果它是服务器,它将从层次结构中获取服务器文本,如果它是客户端,则使其从层次结构中获取客户端文本对象。

我希望图形是不言自明的。

以下图形由我面临的 2 个不同问题组成。

4

2 回答 2

1

当您从独立版本托管时,您无法直接在客户端的检查器中看到谁是主机。您可以创建 UI 以显示有关网络身份的信息并确保一切正确。

于 2017-07-10T11:31:05.670 回答
1
  1. 对于第一个问题,请记住:

当您以主机身份加入游戏时,您是服务器 + 客户端

当您作为服务器加入游戏时,您只是服务器

当您作为客户加入游戏时,您只是客户

您在构建中检查这些内容并开发您的 OWN GUI 以查看您提到的检查。

  1. 是的,您可以使用这些检查来区分客户端和服务器

    if(isLocalPlayer){

    //是的,这是本地播放器 //该类必须派生自 networkBehaviour 才能访问此属性 }

并且您还可以使用Network类来检查是 Server

于 2017-09-05T09:38:47.097 回答