Unity3D网络组

时间:2015-03-27 10:23:22

标签: unity3d network-programming

我只是想确保我了解何时,为什么以及如何在网络上发送消息(数据包或有什么)时使用组。我想到的例子是:

enter image description here

所以我想象这张地图分为四个象限。让我们说每个象限都有NPC和玩家。 橙色星代表网络组1。 红星代表网络组2。 蓝星代表网络组3。 绿色星代表网络组4。 因此,让我们说所有玩家都是从地图的蓝色星形象限开始,他们都在第3组中。这意味着所有的RPC都以" 3"因为群组参数将在该象限客户端的所有玩家中接收和处理(对吗?)。从其他组发送的任何RPC都会被其客户端忽略(右)?

因此,如果NPC移动到绿色星象限中的新位置,它将不会在1-3组(右)处理?

现在,如果玩家从蓝色星象限移动到绿色星象限,他的网络组应该从3到4(右)切换(通过触发对撞机)?

同样,我只是试图检查我对网络组如何工作的理解。他们以教程的形式出现了不多,有些没有。至少不是我找到的。

1 个答案:

答案 0 :(得分:0)

你的问题的答案是肯定的,不知何故。没有网络组类。网络类中只有一个方法。

如果您正在使用网络组。你实际上不会制作4个网络组。如果所有GameObjects都相同,你只需要1,但是你提到了NPC,所以我假设你有玩家,因为如果你没有游戏,它就不是游戏。

因此,您为NPC制作1个NetworkGroup =因为它们可能具有相同的组件。 1 NetworkGroup for Players =相同的组件。

现在我想,你是关心的。对有个人的个人玩家。 Well NetworkGroup不是像蓝队,红队等那样。它只是一个使用相同组件的分组对象。

在游戏中拥有一个群组。你应该在他们所在的团队上做一个变量。

您可以使用NetworkGroup组建团队,但它与Game Logic无关。但是你可以创建NetworkGroup for Chat,即使他们不在同一个团队中,只要他们在团队中。您可以轻松地为该群组致电或聊天。