【发布时间】:2021-06-22 06:47:49
【问题描述】:
当前的 64 位 Unity 是否仍支持 32 位 (x86) 本机 DLL?
我有一个大型 x86 DLL 和一个不错的 C API,以及一个在 C# 中完美运行的互操作文件,但在 Unity 中除外。我已将所有能找到的选项都设置为 x86,并尝试将其放入 Plugins/x86。
要么它没有找到 DLL,要么它找到它并抱怨我需要将它转换为 64 位。但我做不到。
要么 (a) 某处是我遗漏的关键因素,要么 (b) 它无法完成并且我的项目已死。它是哪一个?一些示例代码或教程会有所帮助。我没有想法。
我的问题的关键是,这只是关于 Unity,而不是关于 x64 与 x86 的一般问题。其他问题无关紧要。
答案是:不,您不能在 Unity 编辑器中使用 32 位 DLL,但是可以,您可以在带有 x86 目标的 Unity 构建中使用 32 位 DLL。 Unity 允许您提供多个 DLL 以针对不同的平台,但对于编辑器,它必须是 64 位的。
我认为这是一个合理的问题和有用的答案,我在其他地方没有看到过。我认为它不应该关闭。
【问题讨论】:
-
这些其他答案是无关紧要的,因为它们没有提到 Unity。
-
“64 位 Unity”是否不意味着 64 位 DLL,因此不意味着 64 位进程?无论哪种方式,重复项都清楚地表明只有 32 位进程可以直接使用 32 位 DLL,其他所有内容都从该 DLL 遵循,包括您需要 Unity 库的 32 位构建才能在同一进程中使用它作为另一个 32 位 DLL。
-
我想可以公平地说明 DLL 与编辑器的可用位数,这是限制一个人的选择的另一个必要事实。不过,它不是开源的吗?因此,人们可能会期望您可以构建一个 32 位的编辑器。