【问题标题】:Using C# library in Unreal Engine C++在虚幻引擎 C++ 中使用 C# 库
【发布时间】:2019-07-20 12:13:17
【问题描述】:

您好,我希望在虚幻引擎中的 C++ 应用程序中使用 C# 库。 是否有任何简单的方法可以使用 C++ 包装 C# 库?

我查看了如何包装 C# 库,但似乎只有关于如何在 C# 中使用 C++ 库的帖子。

非常感谢您的帮助。

【问题讨论】:

  • 你需要嵌入一个运行时,很可能是 Mono:这不是微不足道的,而且工作量很大
  • 没有准确回答您的问题,但这也是 C++/CLI 存在的部分原因。您可以改用它重写/包装。

标签: c# c++ wrapper unreal-engine4


【解决方案1】:

C# 允许您对 c++ 和 c 库执行互操作性调用。虽然没有暴露,但您可以操纵您的程序集以强制反转(这是通过 ildasm 完成的,但是,这是一个技巧,我不会详细说明)。

要实现您的要求,您必须手动填补 c++ 主机和 c# 库之间的空白。一种方法是在 MC++ 中创建一个新的程序集(即带有托管 clr 的 c++),但显然不是零努力。此桥接程序集将公开 api 以便您的 c++ 语言使用,同时它可以访问您的 c# 库以重用逻辑。

这不是一项简单的任务,因为您需要在“针对设计的用例”时手动编组数据结构。

在我看来,嵌入运行时也会有同样的努力。在任何情况下,你都应该小心,因为你的虚幻引擎是资源密集型的,性能可能会受到影响。此外,c#部分有一个不同的内存管理系统,在虚幻引擎的压力下无法达到最佳状态。

【讨论】:

  • 感谢您的回复,我想我可能只是在外部库上运行 C# 库并使用套接字将数据传递到虚幻引擎,因为经验不足,无法尝试其他任何方法。
  • 不客气!这也是一种方式,没有“正确”的方式来做到这一点,因为它取决于您拥有的所有要求和约束。
猜你喜欢
  • 1970-01-01
  • 2015-10-12
  • 2020-09-14
  • 2016-08-07
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
  • 2015-08-01
相关资源
最近更新 更多