项目使用unity2019.4.26 和 vuforia 9.8.8(unity2020.3.11也已经实现)文章最后提供 例子下载地址(方便开发者使用,不用一系类繁琐操作)
一.参考文档 Building and Using the UVC Camera Driver Sample
二.编译要求
1、操作系统
本次使用的是:Windows 10 的 64 位操作系统
2、Python 配置要求版本 2 或者更高
下载地址 https://www.python.org/downloads/
2.1 下载好,安装即可,安装成功后,执行 python (环境配置,安装中勾选自动配置即可),产看安装结果,如下图
3、Git 安装配置 (需要就安装可不安装)https://git-scm.com/downloads
4、CMake 配置要求版本 3.6 或者更高
下载地址 https://cmake.org/download/
2)下载安装 CMake 即可,然后把 CMake 配置到环境变量中(安装时可勾选环境变量添加),如下图
3)在 cmd 终端中,输入 camke -version,即可查看到版本,表示配置成功,如下图
5、Ninja 下载与环境配置
下载地址 https://github.com/ninja-build/ninja/releases
2)下载完后,解压文件,得到如下文件
3)配置 ninja.exe 到环境变量中,如下图
4)在 cmd 终端中输入 ninja -help ,查看ninja是否配置成功,如下便是配置成功
6、Android NDK 13 下载并配置环境
下载地址https://developer.android.google.cn/ndk/downloads/older_releases
2)把 Android NDK 13 配置到环境变量中,如下图
3)在 cmd 中检查是否配置成功,输入 ndk-build ,如下图便是配置成功了
7、Android SDK 22 下载安装,并配置环境
1)建议下载 Android Studio,在Android Studio 环境中下载对应 Android SDK ,Android Studio
2)下载好后,根据步骤安装 Android Studio 即可,打开 Android Studio 的 SDK Manager 安装 Android SDK 22 ,如下图
4)配置环境,如下图
三、编译环境之文件资源准备:
1、Download Vuforia Engine for Android , 即是 vuforia-sdk-android-xx.zip 下载
四、编译环境之文件夹整理:
五、编译环境之开始编译:
2、上一步骤编译成功后,在 cmd 中,在切换到目录 xxx\vuforia-sdk-android-8-6-7\samples\UVCDriver,输入命令 python build.py 进行编译,如下图
(涉及到的命令有1、cd xxx\xx 2、python build.py)
3、编译成功后,会在 xxx\vuforia-sdk-android-8-6-7\samples\UVCDriver\build\bin\Android 文件夹下有编译后的平台 so 和 jar ,如下图
六、在Unity中使用编译成果,开发 Vuforia 调用 USB 摄像头工程
1、把编译好的 so 和 jar 导入Unity 工程中添加的的 Plugins/Android/libs 文件夹下,如下图
2、在工程中新建一个脚本,用于获得外接USB 摄像头权限,
3、把新建的脚本挂载到场景中,
4、像正常在Unity中进行Vuforia开发的操作步骤,开发Vuforia AR 应用即可
7、编译打包,Android 设备连接USB摄像头即可
七、关键代码
using UnityEngine;
/// <summary>
/// 用于获得调用 USBCamera 摄像头的权限
/// </summary>
public class UVCManager : MonoBehaviour
{
private void Awake()
{
#if UNITY_ANDROID
bool driverLibrarySet = false;
driverLibrarySet = VuforiaUnity.SetDriverLibrary("libUVCDriver.so");
if (driverLibrarySet)
{
// Load your applications scene here
// InitAndLoadScene(VUFORIA_DRIVER_CAMERA_SCENE_INDEX);
// The application needs to ask for USB permissions to run the USB camera
// this is done after the driver is loaded. We call a method in the UVC driver
// Java code to request permissions, passing in the Unity app's activity.
AndroidJavaClass unityJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject unityActivity = unityJC.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass usbControllerJC = new AndroidJavaClass("com.vuforia.samples.uvcDriver.USBController");
usbControllerJC.CallStatic("requestUSBPermission", unityActivity);
}
else
{
Debug.Log("Failed to initialize the UVC driver - defaulting to the standard scene");
// Fall back to the in-built camera
}
#endif
}
}
八、编译成功的vuforia-sdk 调用 usbcamera 的(so 和 jar )工程地址(包括apk例子和.jar文件)
1.官方给的apk和例子 下载地址
2.自己实现的apk和例子 下载地址
3.项目源码 项目源码下载地址
(备注:unity->packagemanager->)
参考博文:
https://blog.csdn.net/zhangxiao13627093203/article/details/103834015
https://blog.csdn.net/u014361280/article/details/104490599