2017-05-02 99 views
0

我是一個套接字編程和Unity的新手。 我推演示播放按鈕這個簡單的服務器代碼統一超級簡單網絡服務器代碼錯誤

using System; 
using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.Networking; 

public class PaintServer : MonoBehaviour { 

    public bool isAtStart = true; 
    public int port; 
    // Use this for initialization 

    void Start() { 

     Debug.Log("Start"); 
     SetupServer(); 
    } 


    private void SetupServer() 
    { 

     if (NetworkServer.active) 
     { 
      Debug.Log("Server is already acitve"); 
      return; 

     } 
     NetworkServer.Listen(port); 

     Debug.Log("Listen Complete"); 

     // system msgs 
     NetworkServer.RegisterHandler(MsgType.Connect, OnServerConnect); 
     NetworkServer.RegisterHandler(MsgType.Disconnect, OnServerDisconnect); 
     NetworkServer.RegisterHandler(MsgType.Error, OnServerError); 


     DontDestroyOnLoad(gameObject); 
    } 

    public void OnServerConnect(NetworkMessage netMsg) 
    { 
     Debug.Log("PaintServer received client"); 
    } 
    public void OnServerDisconnect(NetworkMessage netMsg) 
    { 
     Debug.Log("PaintServerlost client"); 

    } 
    public void OnServerError(NetworkMessage netMsg) 
    { 
     Debug.Log("ServerError from Master"); 
    } 

    public void OnConnect(NetworkMessage netMsg) 
    { 
     Debug.Log("player connected!"); 
    } 

} 

我沒有劇本,除了上面的代碼後,得到了一個無限的錯誤。每當運行程序,有無限的錯誤消息,使得

主機標識出綁定ID的{0}最大的ID應該大於0且小於 {0} UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

什麼問題,我該如何解決?請幫幫我。

+0

您是否在巡視器中設置了端口變量? – Icewine

+0

@lcewine你是什麼「在巡視員中設置端口」?我也做了一些可能的端口號,例如15000,6321,7894,但結果相同 –

+0

您將'port'設置爲公共變量,所以我認爲您可能忘記在檢查器中設置數字。在測試時對變量進行硬編碼並不是一個壞主意。一旦它工作,你可以公開如果你想。 – Icewine

回答

0

我有同樣的問題,當Unity失去焦點(單擊另一個窗口或桌面)時,該錯誤出現在控制檯中。我通過將我的團結項目設置爲「在後臺運行」來解決此問題。

  1. 編輯 - >項目設置 - >播放器。
  2. 在分辨率和演示文稿部分查找「在後臺運行」,並勾選它。

我希望這適用於你或另一個人在這個問題上。