我正在使用USB接口设备开发项目(请参阅here),并尝试在Unity应用程序中使用SDK包中提供的DLL。最终目标是允许Unity访问硬件的输入和输出 - 这是由DLL提供的功能。
I added the DLL to the project,并尝试从脚本中访问它。
FacesContext.getCurrentInstance().getExternalContext().getFlash().keep("ownerId");
Unity给我一个错误。错误是:
Assets / Resources / Scripts / DLLTest01.cs(3,7):错误CS0246:类型或 找不到命名空间名称“k8055d”。你错过了使用吗? 指令或汇编参考?
DLL肯定在项目的文件夹中,并命名为'k8055d.dll',这可能是什么原因,我该怎么做才能使DLL与我碰巧为我的硬件设备制作的任何游戏一起工作? / p>
我觉得这可能与Unity正在使用的.NET版本有关,但我不确定如果这是问题我该怎么做。
答案 0 :(得分:2)
我检查了文档,你的DLL不是.NET。它已编译,因此您需要使用插件才能将其与Unity3D一起使用。 (您可能需要围绕该本机DLL代码创建.NET包装器。)
Documentation about how to create plugins is available at the Unity Manual
答案 1 :(得分:0)
This answer应该可以帮到你:
要在游戏中使用外部DLL,只需将其放在Unity项目的Assets目录中即可。然后,下次Unity同步Visual Studio / MonoDevelop项目时,它会在Visual Studio / MonoDevelop项目中添加对DLL的必要引用。
因此,尝试将DLL放在Assets
目录中,看看是否可以!
您也可以尝试使用DllImport,如下所示:
[DllImport("k8055d.dll")]
但正如您在问题中所说,它很可能是.NET版本问题。