如何在Unity中包含预编译的.net dll



悲惨的汇编引用

Unity找不到我的DLL。我有一个DLL,我能够通过添加参考成功加载在visual studio中,但我仍然得到错误在Unity。

DLL是在。net framework 4.6.1,我已经尝试将unity . net framework升级到4。x,在visual studio安装程序中安装相关SDK,使用不同版本的unity(2022、2020、2019),都不行。

我知道DLL可以工作,因为我已经能够在unity之外编译它,但我的这个项目的目标是让它在没有黑客IPC的unity中运行。

以下是我尝试过的一些不奏效的方法:无法添加对dll的引用.dll文件无法访问https://answers.unity.com/questions/458300/how-to-use-a-external-dll.html

edit1:所以我试着按照描述安排DLL,但这并不能解决问题。我认为这一定是一个"兼容二进制"的问题。有简单的方法来检查吗?

更多细节:我有麻烦引用的DLL是另一个DLL的包装器,在c#和c++之间翻译,可能这是问题?

请保存我的堆栈溢出。

项目中的DLL, .net DLL引用c++ DLL

要在Unity(本机或。net)中使用插件/预编译程序集,必须将.DLL放在Assets/plugins中。文件夹中。您可以使用x86或x64的子文件夹。我也喜欢包括一个供应商的名字。告诉我更多....

Assets
|--Plugins
|--MickyD
|--MickyD.SoM.Contracts.dll

假设它是一个兼容的二进制文件,Unity将使插件的内容对你在Unity中定义的脚本可用。

你所需要做的就是在Unity脚本的顶部添加适当的using

using MickyD.SoM.Contracts;
using UnityEngine;
.
.
.
namespace MickyD.FleetDefender.Vehicles
{
public class PlaneGadget
{
private Airspeed _airspeed; // Type defined in pre-compiled assembly
}
}

如果你在你的项目中使用asmdef和覆盖的包含,那么你可能需要引用DLL。

参见

  • 导入并配置插件

相关内容

  • 没有找到相关文章

最新更新