我希望每秒大约 30 次从 C# 应用程序向我的 Unity 应用程序传送大量数据。由于 Unity 不支持映射内存和管道,我考虑了 tcp 套接字。如果通信仅在一台机器的范围内,这是否足够快?
可能从 2017 年开始,Unity 还支持托管插件 https://docs.unity3d.com/Manual/UsingDLL.html.
Unity3D也支持c++。
本机插件是特定于平台的本机代码库。他们可以访问诸如OS calls和第三方代码库否则 Unity 无法使用。但是,Unity 工具无法像托管库那样访问这些库。例如,如果您忘记将托管插件文件添加到项目中,您将收到标准编译器错误消息。如果您对本机插件执行相同的操作,则当您尝试运行项目时只会看到错误报告。More... http://docs.unity3d.com/Manual/Plugins.html
...and:
团结有对本机插件的广泛支持,它们是用以下语言编写的本机代码库C, C++、Objective-C 等。插件允许您的游戏代码(用 Javascript 或 C# 编写)调用这些库中的函数。此功能允许 Unity 与中间件库或现有 C/C++ 游戏代码集成。More... http://docs.unity3d.com/Manual/NativePlugins.html.
使用 C++ 代码,您可以自由地执行任何您想要的操作,包括编写本机名称管道服务器,您的 C# 应用程序可以通过该服务器向其发送数据。
本地命名管道的速度非常快,因为它们在内核模式下运行,并且不像 TCP 那样通过网络层。
如果通信仅适用于本地计算机,我会推荐通过 TCP 命名管道。
备择方案
命名管道的替代方案是:
- COM
- DDE
- 文件映射(包括共享内存,谢谢 Ben!)
- 邮筒
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)