1

我一直在尝试使用 unity 5.4 和 c# 制作火箭联盟类型的游戏。

我已经得到了球员工作和比赛区域的一切。玩家由网络生成器生成,球由球生成器生成,就像教程中的敌人生成器一样。我有两个球可以碰撞球并重置球的位置。但是我如何告诉球员有一个进球呢?我一直在到处寻找,找不到一个很好的例子来说明如何从球向球员传递信息。我有一个文本用户界面,它显示在所有球员的相机上,并且使用 2 个变量来计算得分,所以我想要的是在球与球门碰撞时以某种方式通过球增加这些变量。

据我了解,RPC 调用仅在球员对象之间起作用,如果我尝试将它们放在球和球员之间,同步变量似乎不起作用,任何人有任何提示或可以告诉我我错过了什么?

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

4

2 回答 2

1

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

于 2016-08-21T12:15:25.200 回答
1

假设您使用的是 UNet。这是来自与健康同步的教程:

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

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

healthBar滑块 在哪里。

在这里你有关于http://docs.unity3d.com/Manual/UNetActions.html[ClientRPC]的解释[Command]

于 2016-08-17T12:01:24.103 回答