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

本文关键字:进程 IPC 方法 Unity 另一个 之间 | 更新日期: 2023-09-27 18:13:20

我想从一个c#应用程序向我的Unity应用程序每秒传送大约30次的大量数据。因为Unity不支持映射内存和管道,所以我考虑了tcp套接字。如果通信仅在一台机器的范围内,这是否足够快?

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


可能在2017年,Unity也支持托管插件。


Unity3D也支持c++。

原生插件是特定于平台的原生代码库。他们可以访问诸如操作系统调用和第三方代码库等特性,否则Unity将无法使用。然而,这些库不能像托管库那样被Unity的工具访问。例如,如果您忘记将托管插件文件添加到项目中,您将获得标准的编译器错误消息。如果你用原生插件做同样的事情,你只会在尝试运行项目时看到一个错误报告。更多…

…:

Unity具有对原生插件的广泛支持,这些插件是用C、c++ 、Objective-C等编写的原生代码库。插件允许你的游戏代码(用Javascript或c#编写)调用这些库中的函数。此功能允许Unity与中间件库或现有的C/c++游戏代码集成。更多…

使用c++代码,你可以自由地做任何你想做的事情,包括编写一个本机名称管道服务器,c#应用程序可以通过它发送数据。

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

如果通信仅用于本地机器,我建议使用命名管道而不是TCP。

选择

命名管道的替代品有:

    <
  • COM/gh>
  • DDE
  • 文件映射(包括共享内存,谢谢Ben!)
  • Mailslots