如何在Unity 3d中定期识别服务器和客户端

时间:2017-07-09 18:31:28

标签: unity3d networking multiplayer unity-networking unity3d-unet

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

  
    

1

  
  • 我的基本理解是一台机器就像服务器+客户端一样,而其他只是客户端。
  • 但是在从PC构建托管时跟随图形时根本没有服务器????
  • 当我从Unity Editor托管它时,现在有服务器+客户端..为什么???
  
    

2

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

  • 在客户端按下空格时,客户端也会增加客户端分数。

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

我希望图形是自我解释的。

Following Graphics are consist of 2 different problems I am facing.

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

  1. 关于第一个问题,请记住:
  2. 当您以主机加入游戏时服务器+客户端

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

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

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

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

      如果(isLocalPlayer){

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

    2. 您也可以使用Network课程来核对is Server