Unity套接字程序不运行

时间:2016-05-16 18:32:28

标签: c# sockets unity3d

我在团结中制作了一个简单的游戏。我希望这个游戏从socket作为服务器读取数据。名为Socket.cs的文件创建服务器并侦听端口8000,如果我在visual studio中运行此文件,则可以正常工作。我想在团结游戏开始时运行这个文件。问题出在这里,游戏启动但socket.cs文件尚未启动。 Socket.cs放在Unity游戏中的assets目录中。

我用于c#中的套接字服务器的代码:http://paste.ubuntu.com/16466625/

你能帮助我在游戏开始时启动socket.cs文件吗?

谢谢

1 个答案:

答案 0 :(得分:3)

首先,Unity没有像普通C#程序那样的Main函数。因此,在public static void Main()中放置代码将不起作用。 Unity使用Start()和其他simliar函数,因为它的起点不是Main()

  

Socket.cs放在Unity游戏的资产目录中

简单地将脚本放在资源文件夹中并不意味着它可以工作。您必须从另一个Unity脚本实例化脚本或将脚本附加到GameObject。

即使代码在Unity中运行,Unity也会冻结,因为套接字代码是同步的而不是异步的。它会在读取或等待客户端连接时阻塞。

您应该使用Thread或使用asynchronous套接字。

Here是在Unity中运行的完整Unity TCP服务器。它使用Thread

我建议您了解Unity的工作原理。学习基础知识。