Unity2019.4.26 Vuforia9.8.8 之 简单实现Vuforia调用Android设备外接(USB)摄像头camera实现AR

2023-05-16

项目使用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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity2019.4.26 Vuforia9.8.8 之 简单实现Vuforia调用Android设备外接(USB)摄像头camera实现AR 的相关文章

  • Spring-依赖注入(IOC)

    SPRING 一 依赖注入 xff08 IOC xff09 1 什么是依赖注入 xff08 1 xff09 我们经常说的控制反转 xff08 Inversion of Control IOC xff09 和依赖注入 xff08 Depend
  • 使用Vmware虚拟机无法ping通开发板

    文章同时发布于个人博客https www shui2000 top posts 76f723b3 html 问题详细描述 嵌入式课程中 xff0c 本人使用Vmware虚拟机运行Ubuntu22 04操作系统 xff0c 无法与开发版pin
  • 深入浅析MyBatis源码

    MyBatis 1 SqlSessionFactoryBuilder 通过build方法去解析xml配置文件 通过调用XMLConfigBuilder的parse方法将配置文件封装成一个Configuration对象 Xml节点解析 封装好
  • java 无需SSL验证的HTTP请求

    实例 如果有用请给我个赞好吗 public static Map lt String Object gt doPost String url Map lt String String gt paramaters HttpPost httpR
  • Kafta原理

    消息队列通信的模式 通过上面的例子我们引出了消息中间件 xff0c 并且介绍了消息队列出现后的好处 xff0c 这里就需要介绍消息队列通信的两种模式了 xff1a 一 点对点模式 如上图所示 xff0c 点对点模式通常是基于拉取或者轮询的消
  • MapStruct简介简单应用

    1 MapStruct 是什么 xff1f 1 1 JavaBean 的困扰 对于代码中 code JavaBean code 之间的转换 xff0c 一直是困扰我很久的事情 在开发的时候我看到业务代码之间有很多的 code JavaBea
  • SpringBoot入门案例

    基础项目该包含哪些东西 Swagger在线接口文档 CodeGenerator 代码生成器 统一返回 通用的分页对象 常用工具类 全局异常拦截 错误枚举 自定义异常 多环境配置文件 Maven多环境配置 日志配置 JenkinsFile S
  • Spring事务管理机制

    一 Spring事务管理的几种方式 xff1a Spring事务在具体使用方式上可分为两大类 xff1a 1 声明式 基于 TransactionProxyFactoryBean的声明式事务管理 基于 lt tx gt 和 lt aop g
  • SpringBoot 注解大全

    一 注解 annotations 列表 1 64 SpringBootApplication 包含了 64 ComponentScan 64 Configuration和 64 EnableAutoConfiguration注解 其中 64
  • Spring 中的bean 是否线程安全

    结论 xff1a 不是线程安全的 Spring容器中的Bean是否线程安全 xff0c 容器本身并没有提供Bean的线程安全策略 xff0c 因此可以说Spring容器中的Bean本身不具备线程安全的特性 xff0c 但是具体还是要结合具体
  • SpringBoot使用PageHelper分页

    一 开发准备 1 开发工具 IntelliJ IDEA 2020 2 3 2 开发环境 Red Hat Open JDK 8u256 Apache Maven 3 6 3 3 开发依赖 SpringBoot lt dependency gt
  • Windows Server 出现多个匿名登陆用户的问题解决

    1 起因 工作中需要在同一台 windows server的机器上多个用户同时使用 xff0c 遂建立多个账号 xff0c 供大家进行使用 2 问题 一段时间后发现系统特别卡顿并会死机 xff0c 查询原因后发现 xff0c 如图所示 xf
  • java锁 synchronized的使用及原理剖析

    synchronized用法有三个 修饰实例方法 修饰静态方法 修饰代码块 1 修饰实例方法 synchronized关键词作用在方法的前面 xff0c 用来锁定方法 xff0c 其实默认锁定的是this对象 public class Th
  • 面试HashMap的原理

    一般来说 xff0c java面试必不可少的菜品 xff0c 那就是 来 xff0c 讲一下HashMap的原理 那么今天就来讲一下HashMap的原理 先说一下JDK1 7跟JDK1 8对它的改变 JDK1 7之前使用的是数组加链表 xf
  • JAVA开发环境配置

    1 自己在网上下载JDK xff0c 本教程使用JDK1 6 下载好JDK后双击运行 xff0c 然后根据提示进行安装 安装好JDK后 bin xff1a 存放java可执行文件 如 xff1a javac exe java exe等等 d
  • MyEcplise_Maven搭建SSM框架

    Maven源码 链接 xff1a https pan baidu com s 1eTQMJQy 密码 xff1a 8j1q 博文中的MyEcplise 链接 xff1a https pan baidu com s 1dEdQYa 密码 xf
  • 怎么使用Linux常用命令大全

    系统信息 arch 显示机器的处理器架构 1 uname m 显示机器的处理器架构 2 uname r 显示正在使用的内核版本 dmidecode q 显示硬件系统部件 SMBIOS DMI hdparm i dev hda 罗列一个磁盘的
  • MySQL常用语句详解

    Winfrom连接网页 第一种方法 xff1a 调用本地浏览器System Diagnostics Process Start 34 https www microsoft com zh cn 34 第二种方法 xff1a 连接 strin
  • Maven搭建SSH连接Oracle数据库

    Maven工程搭建SSH连接Oracle数据库 首先在pom xml里引入jar lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xmlns xsi 61 34 http
  • MyBatis简介与运用

    1 Mybatis简介 1 1 Mybatis是什么 Mybatis是一个java的持久层框架 xff0c 保存到数据库 持久化 xff1a 保存到本地文件 1 2 Mybatis的作用 操作数据库 1 3 为什么要学习mybatis 1

随机推荐