网络无法连接到服务器c#unity5

时间:2015-06-12 19:54:48

标签: networking unity3d

我在unity5中完成了网络C#脚本。 它基于https://vimeo.com/33996023 一切都很好,直到30分钟的教程。 我做了构建,运行它,在构建中启动服务器,然后在统一启动游戏,刷新主机,1服务器弹出,我点击它没有任何反应然后我收到消息:无法连接到10.0.0.100:25001因为这系统已连接。当网络连接断开太快而远程系统无法接收断开连接通知时,例如使用Network.Disconnect(0)时,可能会发生这种情况。

我的剧本:

public class NetworkManager : MonoBehaviour {
    public string gameName = "DP_Network_server";
    private bool refreshing;
    private HostData[] hostList;


    void OnGUI() {

        if (!Network.isClient && !Network.isServer) {

            if (GUI.Button (new Rect (10, 10, 150, 100), "Start Server")) {
                Debug.Log ("Starting Server");
                startServer ();
            }   

            if (GUI.Button (new Rect (10, 200, 150, 100), "Refresh Hosts")) {
                Debug.Log ("Refreshing");
                refreshHostList ();
            }

            if (hostList != null) {
                for (int i = 0; i < hostList.Length; i++) {

                    GUI.Button (new Rect (400, 100 + (110 * i), 300, 100), hostList [i].gameName);
                    Network.Connect (hostList [i]);

                }
            }
        }
}

void startServer() {
    Network.InitializeServer(32, 25001, !Network.HavePublicAddress());
    MasterServer.RegisterHost(gameName, "Double Planet Game", "This is test of networking");
}

void OnServerInitialized()
{
    Debug.Log("Server Initializied");
}

void OnMasterServerEvent (MasterServerEvent mse) {
    if (mse == MasterServerEvent.RegistrationSucceeded) {
        Debug.Log ("Registered Server");        
    }
}

void refreshHostList() {
    MasterServer.RequestHostList(gameName);
    refreshing = true;
    }

void Update (){
    if (refreshing) {
        if (MasterServer.PollHostList().Length > 0) {
        refreshing = false;
            Debug.Log (MasterServer.PollHostList ().Length);
            hostList = MasterServer.PollHostList();

        }

    }

}

}

我确实设置了项目设置&gt;播放器在后台播放,我将网络视图附加到播放器。 Network.Connect(hostList [i]);?

有问题

1 个答案:

答案 0 :(得分:0)

好吧,我认为有一个原因,当客户端开始连接到服务器但没有完成时,它会继续尝试连接每一帧,你可以让它只做一次。 也许你可以改变它:

void OnGUI(){

{{1}}
相关问题