接上一篇《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文件,否則無法運行。