networkserver connectionId是一个统一的列表吗?

时间:2017-03-05 10:36:50

标签: c# unity3d unity-networking

嗨,我现在一直在考虑这个问题,似乎无法得到答案 我的问题是。 networkServer connectionId是否为unity c#?

中的列表

我在想这个。 假设我们有两个连接到服务器的播放器。

player_1 = connectionId 0   
player_2 = connectionId 1

如果让我们说player_1断开连接会发生什么。是否会让player_2向下移动到第一行并获得player_1的connectionId?

player_1 = disconnected(no connectionId then)  
player_2 = connectionId 0  

还是会留在同一个connectionId?如果是这样,如果第三个玩家连接会发生什么?他会被设置在线前并占据player_1的旧连接吗?

player_3 = connectionId 0  
player_2 = connectionId 1  

或者他会被排在后面?并获得一个新的connectionId

player_1 = disconnected(no connectionId then)  
player_2 = connectionId 1  
player_3 = connectionId 2

1 个答案:

答案 0 :(得分:1)

  

如果让我们说player_1断开连接会发生什么。会这样做   player_2向下移动到第一行并获取connectionId   PLAYER_1?

  

还是会留在同一个connectionId?如果是这样的话会发生什么   如果第三个玩家连接?他会被排在前面吗?   把player_1的旧connectionId?

每个连接都会获得唯一 ID。

每当您感到困惑时,请阅读API的Documentation

来自Doc:

的引用
  

由此分配的此连接的唯一标识符   传输层。

     

在服务器上,此Id对于服务器上的每个连接都是唯一的。上   客户端此Id是客户端本地的,它与Id不同   在此服务器上进行此连接。

因此,当其他 NetworkConnection连接或断开连接时,ID仍然相同。

NetworkConnection.connectionId的值可能更改的唯一时间是设备/客户端断开连接并再次连接。在这种情况下,当它再次重新连接时它会给出另一个id,但这不应该影响仍然连接的设备/客户端。他们的身份证仍应保持不变。