为 Unity 3D 构建 iOS 和 Android ARToolkit 包装器 (ARWrapper) 库

Build iOS and Android ARToolkit wrappers (ARWrapper) libraries for Unity 3D

一段时间以来,我一直在尝试弄清楚如何构建 Unity 用来连接 ARToolkit 5.3.1 的 ARWrapper 库。我可以使用 ARToolkit 源构建 ARWrapper 包,但我不知道如何从包移动到特定于平台的库(iOS 和 Android)。在 Unity 的 ARToolkit 包中,提供了以下我需要构建的资产:

Android: AndroidManifest.xml, AndroidManifest.xml.meta, BT200Ctrl.jar, BT200Ctrl.jar.meta, libARWrapper.so, libARWrapper.so.meta, libc++_shared.so, libc++_shared.so.meta, res: res.meta, UnityARPlayer.jar, UnityARPlayer.jar.meta

iOS: ARToolKitUtilities.m, ARToolKitUtilities.m.meta, libARWrapper.a, libARWrapper.a.meta, libjpeg.a, libjpeg.a.meta

但到目前为止,使用 ARToolkit 源代码我只能构建一个捆绑文件 (ARWrapper.bundle)。

有人可以帮助我了解如何从包移动到特定于平台的库,如上图所示,在包的资产文件夹中。更具体地说,我希望能够构建 libARWrapper.so 和 libARWrapper.a

如果你有好的工具链,我想你应该使用 CMake http://www.vtk.org/Wiki/CMake_Cross_Compiling

基本上这个想法是获取源代码,创建一个构建目录,然后:

cd build
~/src/build$ cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain.cmake ..

libARWrapper 是每个平台的 ARToolKit 的一部分。

  • 您已经为 OS X 构建了它,大概是使用 OS X SDK 的 ARToolKit。
  • 要为 iOS 构建它,您需要为 iOS SDK 下载 ARToolKit 并在 Xcode 中构建,然后将 libARWrapper.a 从库复制到您的Unity 项目。
  • 对于 Android,再次下载适用于 Android SDK 的 ARToolKit,打开终端 window、cd android,然后 ./build.sh。最后,将 libARWrapper.so 从 libs 目录复制到您的 Unity 项目中。
  • 对于 Windows Win32,下载 ARToolKit for Windows SDK,进行构建,将 ARWrapper.dll 从 bin 目录复制到您的 Unity 项目中。

您提到的其他部分通常可以在每个平台上重建。对于 Android,您可能想要重建的另一个关键组件是 UnityARWrapper.jar,其源代码包含在 ARToolKit for Unity SDK 中。