我一直在尝试用统一5.4和c#制作火箭联盟型比赛。
我已经掌握了玩家和玩具区的所有内容。这些球员是由网络产生者产生的,球由球产生者产生,就像教程中的enemyspawner一样。我有两个球可以碰撞并且重置球位置的目标。但是我如何告诉球员有进球?我一直在寻找各地,无法找到如何将信息从球传递给球员的好例子。我有一个文本用户界面,显示在所有玩家的相机上,并使用2个计数得分的变量,所以我想要的是以某种方式通过球在与目标碰撞时增加这些变量。
RPC调用仅在我理解的情况下在玩家对象之间起作用,如果我试图将它们放在球和玩家之间,那么syncvars似乎不起作用,任何人都有任何提示或者可以告诉我我缺少什么? / p>
编辑:对于有同样问题的人。我通过制作一个scoreManager对象并让它得分为syncvars来解决这个问题,然后我得到了scoremanager组件及其脚本并增加了球的得分,然后为球员得到它并获得得分。
答案 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组件及其脚本并增加了球的得分,然后为球员得到它并获得得分。