在单个场景中关闭多人连接

时间:2018-12-13 09:30:04

标签: unity3d multiplayer

我对构建的多人游戏有这些疑问。我已经浏览了Unity网站上提供的多人游戏教程,也没有看过付费的在线多人课程。我仍然不清楚这些问题,所以我在这里问,希望有人能对此提供适当的详细信息:

  • 在多人游戏中,当玩家从多人网络中死亡时,如何将其删除?大多数情况下,所有教程都会再次产生他,因此他们正在重新定位。我想将死亡的玩家从游戏中完全移除。
  • 在多人游戏中,当此设备玩家死亡时,如何关闭多人连接?因为我没有在同一场景中使用单独的场景进行多人游戏活动,所以我正在运行单人游戏和多人游戏模式。所以我想正确关闭多人游戏连接,再次让玩家可以使用新的比赛进行连接。下图代表了我的观点:

enter image description here

我对当前的项目实施有这些疑问,希望有人能向我解释一下。

1 个答案:

答案 0 :(得分:2)

您可以根据需要在客户端上使用NetworkManager.singleton.StopClient,在主机上使用NetworkManager.singleton.StopHostNetworkManager.singleton.StopMatchMaker

您可以使用玩家GameObjects的NetworkBehaviour属性isClientisServer来找出谁。

由于您说过,如果还没有播放器,您还希望能够检查这一点,您可以在连接后立即以某种方式存储它。

public enum ConnectionType
{
    Unknown,
    Client,
    Host
}

public static class WhoAmI
{
    public satic ConnectionType Type;
}

,而不是播放器对象脚本中脚本的某个位置,例如在Awake中完成

WhoAmI.Connection = isServer ? ConnectionType.Host : ConnectionType.Client;

如果您想稍后再连接,则可以使用相反的方法NetworkManager.singleton.StartMatchMakerNetworkManager.singleton.StartHostNetworkManager.singleton.StartClient