如何计算来自非玩家对象的所有玩家的得分

时间:2016-08-17 09:05:25

标签: unity5 unity-networking unity3d-unet

我一直在尝试用统一5.4和c#制作火箭联盟型比赛。

我已经掌握了玩家和玩具区的所有内容。这些球员是由网络产生者产生的,球由球产生者产生,就像教程中的enemyspawner一样。我有两个球可以碰撞并且重置球位置的目标。但是我如何告诉球员有进球?我一直在寻找各地,无法找到如何将信息从球传递给球员的好例子。我有一个文本用户界面,显示在所有玩家的相机上,并使用2个计数得分的变量,所以我想要的是以某种方式通过球在与目标碰撞时增加这些变量。

RPC调用仅在我理解的情况下在玩家对象之间起作用,如果我试图将它们放在球和玩家之间,那么syncvars似乎不起作用,任何人都有任何提示或者可以告诉我我缺少什么? / p>

编辑:对于有同样问题的人。我通过制作一个scoreManager对象并让它得分为syncvars来解决这个问题,然后我得到了scoremanager组件及其脚本并增加了球的得分,然后为球员得到它并获得得分。

2 个答案:

答案 0 :(得分:1)

假设你正在使用UNet。这是来自健康同步教程:

   [SyncVar(hook = "OnChangeHealth")]  
   public int currentHealth = maxHealth;

   void OnChangeHealth(int cH)
   {
        healthBar.value = (float)cH / maxHealth;
   }

其中healthBar是滑块。

您有[ClientRPC][Command]的解释 http://docs.unity3d.com/Manual/UNetActions.html

答案 1 :(得分:1)

对于有同样问题的人。我通过制作一个scoreManager对象并让它得分为syncvars来解决这个问题,然后我得到了scoremanager组件及其脚本并增加了球的得分,然后为球员得到它并获得得分。