【问题标题】:How is Unity3D Able to Compile PhysX?Unity3D 是如何编译 PhysX 的?
【发布时间】:2015-07-29 19:43:09
【问题描述】:

Unity3D 使用 Mono 将代码编译为纯中间语言以实现交叉兼容性(如果我错了,请纠正我)。 PhysX 包含本机代码,其中一些无法用纯托管代码 (/clr:pure) 表示。

我知道您不能将 ijw/native 模块与纯模块链接;您不能以纯模式链接本机目标文件。然而,Unity3D 似乎通过包含 PhysX 解决了这个问题。 如何?

除了通过 Unity 和 PhysX 合作的可能的特殊构建之外,我找不到任何可以解释这一点的资源:@​​987654321@

【问题讨论】:

标签: unity3d mono physx


【解决方案1】:

Mono 和 .NET 允许用户通过调用外部库来调用本机 C/C++ 代码。

Unity 有一个称为 IL2CPP 的系统,它采用中间单声道语言并将其转换为 C++(或通过 emscripten 构建 webgl 的 asm.js)。这就是 Unity 编译到 iOS 的方式。所有 C#/Unityscript/Boo 代码都被转换为 C/C++/Obj-C,然后将其包含到 XCode 项目中,以便您构建和调试 iOS 应用程序。

Unity pro 允许将本机库包含到您的游戏中。这允许您通过包含静态或共享库(取决于平台)并从 C# 调用库来运行原始 C/C++ 代码。不仅可能有一个特殊的 PhysX 构建,而且可能通过 Mono 的本机界面访问。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多