将DLL导入Unity - 无法找到类型或命名空间

时间:2015-09-30 11:02:56

标签: c# .net dll unity3d import

我正在使用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版本有关,但我不确定如果这是问题我该怎么做。

2 个答案:

答案 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版本问题。