2016-05-16 23 views
1

我做了一個簡單的遊戲統一。我希望這個遊戲能夠從套接字讀取數據作爲服務器。名爲Socket.cs的文件創建一個服務器並監聽端口8000,如果我在Visual Studio中運行此文件,它將起作用。我想在統一遊戲開始時運行這個文件。問題在這裏,遊戲開始,但socket.cs文件尚未啓動。 Socket.cs被放置在統一遊戲中的assets目錄中。Unity套接字程序不運行

我在C#中使用socket服務器代碼:http://paste.ubuntu.com/16466625/

你能幫助我,請啓動socket.cs文件時,遊戲已經開始了嗎?

謝謝

回答

3

首先,統一不具有Main功能像一個正常的C#程序。因此,在public static void Main()中輸入代碼將不會執行任何操作。 Unity使用Start()和其他simliar函數,因爲它的起點不是Main()

Socket.cs放在資產目錄團結遊戲

簡單地把在資源文件夾的腳本並不意味着它會工作。您必須從另一個Unity腳本實例化腳本或將腳本附加到GameObject。

即使代碼在Unity中工作,Unity也會凍結,因爲套接字代碼是同步的而不是異步的。它會在閱讀或等待客戶端連接時阻止。

您應該使用Thread或使用asynchronous套接字。

Here是完整的Unity TCP服務器,在Unity中工作。它使用Thread

我建議你學習Unity如何工作。學習基本。

+0

這是一個非常有價值的鏈接。 – Fattie

+0

@JoeBlow謝謝。本週Unity中有4個關於套接字的問題,並且該鏈接解決了所有這些問題。 – Programmer

+1

非常感謝您的幫助。真棒解釋:) –