悲惨的汇编引用
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。
参见
- 导入并配置插件