接上一篇《CMake+VS2019编译ViSP工程》
一、编译ViSPUnity.dll
-
下载工程
C:\> cd %VISP_WS% C:\> git clone https://github.com/lagadic/visp_unity
-
构建链接到ViSP的包装器
C:\> cd visp_unity C:\> mkdir vispWrapper-build-vc16 C:\> cd vispWrapper-build-vc16 C:\> cmake -G "Visual Studio 16 2019" -A "x64" ..\vispWrapper -DVISP_DIR=%VISP_WS%\visp-build-vc16\install C:\> cmake --build . --config Release
第4步会报错
-
-
用VS2019将C:\visp-ws\visp_unity\vispWrapper-build-vc16\ViSPUnity.sln,
-
在这里您可以找到插件
%VISP_WS%/visp_unity/vispWrapper-build-build-vc16/Release/ViSPUnity.dll,将Visp_MbGenericTracker_SetKeypointSettings函数代码注释掉,保存后重新编译。这时会生成ViSPUnity.dll(位置:C:\visp-ws\visp_unity\vispWrapper-build-vc16\Release)。
-
-
复制
ViSPUnity.dll
到%VISP_WS%/visp_unity/unityProject/Assets/
文件夹下。
二、在unity识别Apriltage
用Unity2018.4.14打开C:\visp-ws\visp_unity\unityProject工程(请确保ViSPUnity.dll已复制到Assets下),运行scene_ar场景。会提示DllNotFoundException: ViSPUnity。
原因:ViSPUnity依赖其他dll,可以使用depends.exe工具查看
解决办法:将C:\visp-ws\visp-build-vc16\install\x64\vc16\bin中的dll全部复制到ViSPUnity.dll同一目录。
再将运行即可正常运行了。
注意!一定要确保你所使用的Unity3d的\Editor\Data\Tools\Rosly路径下有api-ms-win-core*.dll文件,否则无法运行。