代码之家  ›  专栏  ›  技术社区  ›  Siddharth

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

  •  0
  • Siddharth  · 技术社区  · 6 年前

    我有这些关于我建立的多人游戏的问题。我浏览了Unity网站上的多人教程,也很少看到付费的在线多人课程。但我还是不清楚这些问题,所以我在这里提出问题,希望有人能给出适当的细节:

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

    enter image description here

    我有这些关于当前项目实施的问题,希望有人能给我解释一下。

    1 回复  |  直到 6 年前
        1
  •  2
  •   derHugo    6 年前

    你可以使用 NetworkManager.singleton.StopClient 在客户和 NetworkManager.singleton.StopHost 在主人身上, NetworkManager.singleton.StopMatchMaker 取决于你的需要。

    你可以通过使用 NetworkBehaviour 性质 isClient isServer 在玩家的游戏对象上。

    既然你说你想也可以检查这个,如果没有玩家了,你可以在连接后存储它。

    public enum ConnectionType
    {
        Unknown,
        Client,
        Host
    }
    
    public static class WhoAmI
    {
        public satic ConnectionType Type;
    }
    

    而不是你的玩家对象脚本中的某个地方,例如 Awake

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

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