在Unity进程和另一个C#进程之间进行本地IPC的最快方法

时间:2015-09-17 14:17:39

标签: c# unity3d ipc

我希望每秒从C#应用程序向Unity应用程序提供大约30次的大量数据。由于在Unity中不支持映射的内存和管道,我想到了一个tcp套接字。如果通信只在一台机器的范围内,这会足够快吗?

1 个答案:

答案 0 :(得分:5)

Unity3D也支持c ++。

  

本机插件是特定于平台的本机代码库。他们可以访问操作系统调用等功能以及否则Unity无法使用的第三方代码库。但是,Unity管理库无法以管理库的方式访问这些库。例如,如果您忘记将托管插件文件添加到项目中,您将获得标准编译器错误消息。如果对本机插件执行相同操作,则只会在尝试运行项目时看到错误报告。 More...

...和

  

Unity拥有对原生插件的广泛支持,它是用 C,C ++ ,Objective-C等编写的本机代码库。插件允许您的游戏代码(已编写)在Javascript或C#)中调用这些库中的函数。此功能允许Unity与中间件库或现有的C / C ++游戏代码集成。 More...

使用c ++代码,您可以随意做任何事情,包括编写一个本地名称管道服务器,您的c#app可以通过该服务器发送数据。

本地命名管道非常快,因为它们在内核模式下运行,并且不像TCP那样通过网络层。

如果通信仅用于本地计算机,我建议通过TCP命名管道。

替代

命名管道的替代方案是:

  • COM
  • DDE
  • 文件映射(包括共享内存,谢谢Ben!)
  • 邮筒

Tell me more...