如何计算来自非玩家对象的所有玩家的分数
How to count score on all players from non player object
我一直在尝试使用 unity 5.4 和 c# 制作火箭联赛类型的游戏。
我已经掌握了球员工作和游乐区的一切。玩家由网络生成器生成,球由球生成器生成,就像教程中的敌人生成器一样。我有两个目标,球可以碰撞并重置球的位置。但是我如何告诉球员已经进球了呢?我一直在到处寻找,找不到一个很好的例子来说明如何将信息从球传递给球员。我有一个文本 UI 显示在所有球员的相机上,它使用 2 个变量来计算得分,所以我想要的是在球与球门碰撞时以某种方式增加这些变量。
据我所知,RPC 调用仅在玩家对象之间起作用,如果我尝试将它们放在球和玩家之间,syncvars 似乎不起作用,任何人有任何提示或可以告诉我我错过了什么?
编辑:对于有同样问题的人。我通过创建一个 scoreManager 对象并将分数作为 syncvars 解决了这个问题,然后我得到了 scoremanager 组件及其脚本并增加了球的分数,然后也为球员获取它并获得分数。
假设您使用的是 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
对于有同样问题的人。我通过创建一个 scoreManager 对象并将分数作为 syncvars 解决了这个问题,然后我得到了 scoremanager 组件及其脚本并增加了球的分数,然后也为球员获取它并获得分数。
我一直在尝试使用 unity 5.4 和 c# 制作火箭联赛类型的游戏。
我已经掌握了球员工作和游乐区的一切。玩家由网络生成器生成,球由球生成器生成,就像教程中的敌人生成器一样。我有两个目标,球可以碰撞并重置球的位置。但是我如何告诉球员已经进球了呢?我一直在到处寻找,找不到一个很好的例子来说明如何将信息从球传递给球员。我有一个文本 UI 显示在所有球员的相机上,它使用 2 个变量来计算得分,所以我想要的是在球与球门碰撞时以某种方式增加这些变量。
据我所知,RPC 调用仅在玩家对象之间起作用,如果我尝试将它们放在球和玩家之间,syncvars 似乎不起作用,任何人有任何提示或可以告诉我我错过了什么?
编辑:对于有同样问题的人。我通过创建一个 scoreManager 对象并将分数作为 syncvars 解决了这个问题,然后我得到了 scoremanager 组件及其脚本并增加了球的分数,然后也为球员获取它并获得分数。
假设您使用的是 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
对于有同样问题的人。我通过创建一个 scoreManager 对象并将分数作为 syncvars 解决了这个问题,然后我得到了 scoremanager 组件及其脚本并增加了球的分数,然后也为球员获取它并获得分数。