Unity:本地(LAN)对接会错误

Posted

技术标签:

【中文标题】Unity:本地(LAN)对接会错误【英文标题】:Unity: Local (LAN) MatchMaking error 【发布时间】:2017-04-21 14:52:33 【问题描述】:

我正在尝试创建一个简单的多人游戏。我已经设置了一个配对系统,当设备连接到互联网时它工作正常,即成功创建了一个在线大厅。但是当我尝试在无法访问互联网的本地网络上创建一个大厅时,什么也没有发生。

这是我用于托管游戏的代码:

void Start()

    netManager = NetworkManager.singleton;
    if(netManager.matchMaker == null)
    
        netManager.StartMatchMaker();
    

    roomName = "MyGameRoom";
    roomSize = 12;


public void CreateRoom()

    if (roomName != "" && roomName != null)
    
        Debug.Log("Creating Room:" + roomName);
        netManager.matchMaker.CreateMatch(roomName, roomSize, true, "", "", "", 0, 0, netManager.OnMatchCreate);
    

现在,如果设备已连接到互联网,则游戏已成功托管。但是,如果设备连接到没有互联网服务的 wifi,则调用 CreateRoom 方法时不会发生任何事情。

CreateRoom() 方法与按钮的onClick 事件相关联。

我是统一网络的新手,希望有人能指出我做错了什么。 谢谢。

【问题讨论】:

在编辑器中运行应用程序时检查控制台,如果有错误则在问题中添加错误。 @itay_421 没有错误,这就是控制台所说的......MatchMakingClient Create :https://mm.unet.unity3d.com/json/reply/CreateMatchRequest UnityEngine.Networking.Match.NetworkMatch:CreateMatch(String, UInt32, Boolean, String, String, String, Int32, Int32, DataResponseDelegate1)` 【参考方案1】:

基本的 MatchMaking 服务是基于连接到 unity MatchMaker 服务器 (https://mm.unet.unity3d.com) 并且该服务器位于互联网上,这意味着如果您没有连接到互联网,您将无法连接到它。解决方案是使用NetworkDiscovery,让您的服务器通过网络发送广播消息,以便客户端可以“听到”广播,然后连接到发送者。如果您想要样品,请查看此thread。

【讨论】:

以上是关于Unity:本地(LAN)对接会错误的主要内容,如果未能解决你的问题,请参考以下文章

Unity3d对接网狐6603服务器

Unity 微信登录分享ShareSDK对接流程

独立游戏如何对接STEAM SDK

Android平台GB28181设备接入端对接编码前后音视频源类型浅析

如何对接 Windows Mobile 6 设备并将其与本地数据库同步?

微信小程序开发1.4--小程序对接Django