使用 FUBI 时 Unity 下的 DLLNotFoundException

DLLNotFoundException under Unity whilst using FUBI

我目前正在写我的学士论文,它围绕在 Unity 环境中扩展 Kinectv2 的功能展开。 但是,我几乎没有使用 Unity 和 C# 的经验,在设置 FUBI 库(这将是我论文的核心)时,我 运行 立即解决了这个问题:

启动 Unity 项目(由 FUBI 提供)后,我得到一个

DLLNotFoundException: FUBI.64.dll

接着是对所述库的调用失败导致的大量错误。

对我来说,令人困惑的部分是:回到大学时,我们决定使用 FUBI,因为我们设法安装了它,开箱即用,几分钟之内就没有出现任何问题。但是现在,在我家的塔上(Windows 10和Unity 5.3.5,就像大学里的机器一样),这个错误仍然存​​在。

Unity 项目和所有必需的 DLL 都在 FUBI-website 本身的一次下载中提供,这意味着错误不应该存在于项目、提供的 DLL 或任何奇怪的依赖项中。 除了解压缩包含项目的 zip 之外,唯一需要做的事情(根据 FUBI 的自述文件)是:

IMPORTANT: After installing the Kinect SDK, please execute the "CopyFaceTrackRedist.bat" located in the FubiUnity base folder or manually copy the "Kinect20.Face.dll" and "NuiDatabase" from the Kinect Developer Toolkit to that folder.

我通过 bat 完成的,执行得非常完美,并且都提到 files/folders 复制到项目目录中。

在尝试解决这个问题的同时,我开始手动将 Fubi64.dll 移动到 Unity 项目中的不同位置,但唯一的结果是 Unity 提到它找到了所述 dll 的多个实例,只会使用一个,并且然后抛出异常。

我开始认为这可能是一个依赖项,但下载和使用 dependencywalker 给了我 little to no useable results. (我的意思是,它显示了一些错误,但是根据我读过的 stackflow 上的一些其他线程,afaik 那些与 DW 没有更新并且无法使用某些前向依赖性恶作剧或其他东西有关。)

任何帮助,甚至是关于下一步尝试的指示,我们将不胜感激。

花了几天时间追查这个问题,我终于在 dependencywalker 中找到了一个有意义的条目,并且在将 MPFLAT.dll 手动安装到 windows\system32 之后,Unity 能够很好地加载 dll。我假设它是一些与 mediaviewer 或相关工具相关的 dll,因为它们不是 Win10 自带的,我还没有专门安装任何东西,很可能另一个提到的塔安装了一些东西,带来了 DLL。