【04】Unity AR 2022Vuforia——虚拟按钮超详细教程【含代码】

2023-11-11

【04】Unity AR 2022Vuforia——虚拟按钮超详细教程【含代码】

1.前期工作

(1)Image Target

我们在前面已经讲述了Vuforia02教程,完成了图片识别的基础。
这里就不再重复赘述了
(若不了解,可以阅读练习一下Vuforia02图片识别教程:【02】2022.11最新超详细Vuforia图片识别教程

以下源于我之前发布的Vuforia教程02图片识别
(若已经完成,可以跳读)

【前提:Unity 2019.4.34 + Visual Studio 2019 +Vuforia 8.1.12】

现在,我们先创建一个Unity 3D 项目,项目名称例如(AR Third),进入后
我们开始以下步骤完成环境搭建

首先,我们先Install Vuforia Engine AR 8.1.12:
先点击Window——Package Manager

在这里插入图片描述

进入后,耐心等待(切记!此时得有网络),下滑后选择【Vuforia Engine AR】
点击Install
在这里插入图片描述

导入后,即已经安装好此插件

上述步骤若有明白,可参考学习我曾经分享的教程【01】如何在Unity 中 安装 Vuforia Engine AR 插件?(附加检验安装成功方法)

接下来,我们继续探索Vuforia
(1)搜索官网
Vuforia官网
(2)注册并登录
【如下图所示】

在这里插入图片描述

(3)登录后点击Develop——Get Basic
【如下图所示】

在这里插入图片描述

License Key获取及注册
(1)选择License Manager——填入License Name(刚刚在Unity创建的项目名称)
点击By Checking this box,IXXXXXXXXXXX
选择Confirm
【如下图所示】
在这里插入图片描述

(2)复制密钥
【如下图所示】

在这里插入图片描述

AR Camera
点击Game Object 创建AR Camera,在视图中粘贴上一步骤的License Key
在这里插入图片描述

图片选择条件与图片上传
(1)返回官网,选择Target Manger
在这里插入图片描述

(2)选择【Add DataBase】

在这里插入图片描述

(3)完成如下图所示操作
(1.红色框,输入DataBase Name,可以自行命名)
(2.蓝色框,选择Device)
(3.绿色框,选择Create)
在这里插入图片描述

(4)点击刚刚创建的DataBase,点击如图所示的【Add Target】

在这里插入图片描述

(5)选择类型——Image
(6)导入图片;填width:1;填Name(随意);最后点击Add
【步骤5——6 如下图所示】
在这里插入图片描述

(7)完成后,3星及以上便于识别,等级越高越好(星越多越好);
点击左边红色框的【Target Name】前的选项,
再点击一堆橙色箭头指向的【Download Database】
【如下图所示】

在这里插入图片描述

(8)选择【Unity Editor】,再选择【Download】
【如下图所示】

在这里插入图片描述

(9)完成最后一步操作:导入刚刚下载的Database(我命名的是 MyFirst)
直接将其拖入unity中,选择Import
在这里插入图片描述

到此,我们已经完成了Vuforia的环境搭建,为案例1图片识别奠定了基础

鼠标在Hierarchy视图右键后,Create Image

在这里插入图片描述

选择Image Target 点开,在Database选择刚刚导入的(MyFirst)
在这里插入图片描述

【上述内容为我们回顾【02】Vuforia图片识别教程,即1.前期工作Image Target

现在开始进入虚拟按键的关键环节

2.创建Virtual Button

(1)在Hierarchy视图中点击Image Target
(2)在Inspector视图中点击Advanced展开
(3)点击Add Virtual Button
(4)完成步骤3,两次操作,得到2个Virtual Button
(因为本教程,我们需要创建2个Virtual Button)
【如以下图片所示】

在这里插入图片描述

3.创建Cube 和 Sphere

(1)在Hierarchy视图中,右键Create——3D Object——Cube
(2)在Hierarchy视图中,右键Create——3D Object——Sphere

4.虚拟按钮命名

因为后面需要用代码给这些button注册事件,所以便于判断这两个button是哪个,则通过自定义的两个button名字的不同
在这里插入图片描述

5.完成小tips以便于测试

(1)由于虚拟按钮是透明的,为方便测试,我们可以在Virtual Button下添加一个plane
(2)同时新建一个材质球,选择不同的两个颜色进行Virtual Button的区分
根据1和2的两个小tips,
即:1让Virtual Button更明显了;2让两个Virtual Button便于区分

6.编写VirtualButtonControl脚本(本教程附上脚本)

(1)在Assects中新建一个C#脚本
(2)Rename:VirtualButtonControl
点击脚本后,即进入编写。会弹出VS 2019

以下是脚本(含必要性注释便于读者理解):

using UnityEngine;
using Vuforia;

public class VirtualBtnController : MonoBehaviour, IVirtualButtonEventHandler
{
    public GameObject cube;
    public GameObject sphere;

    void Start()
    {
        VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();

        for (int i = 0; i < vbs.Length; ++i)
        {
            //在虚拟按钮中注册TrackableBehaviour事件
            vbs[i].RegisterEventHandler(this);
        }

        cube.SetActive(false);
        sphere.SetActive(false);
    }

    //继承了IVirtualButtonEventHandler的方法
    public void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        switch (vb.VirtualButtonName)
        {
            case "showCube":
                cube.SetActive(true);
                break;

            case "showSphere":
                sphere.SetActive(true);
                break;
        }
    }

    //继承了IVirtualButtonEventHandler的方法
    public void OnButtonReleased(VirtualButtonBehaviour vb)
    {
        switch (vb.VirtualButtonName)
        {
            case "showCube":
                cube.SetActive(false);
                break;

            case "showSphere":
                sphere.SetActive(false);
                break;
        }
    }
}

7.将编写的脚本挂载到image target上

本步骤过于简单不进行图文描述,看小标题即可理解

8.测试并导出APK至安卓手机上

详见【02】2022.11最新超详细Vuforia图片识别教程导出安卓版本AKP

【以下源于【02】2022.11最新超详细Vuforia图片识别教程讲述的导出安卓版本AKP方法】

导出安卓版本AKP
点击如下图所示,File——Building Settings
在这里插入图片描述

选择安卓平台
在这里插入图片描述

选如下图所示红框
在这里插入图片描述

选择【Build】
在这里插入图片描述

因为是第一次导出APK,会比较慢!请耐心等待!别急!会成功的!

进度条走完后,弹出框如下图所示(自行命名,我比较喜欢以时间命名来区分,现在是2022.11.27,我就以今天命名了,读者可以自由命名)
命名完后,点击【保存】
在这里插入图片描述
接下来,找到我们刚刚导出的APK,将APK发送到安卓手机上。

9.效果展示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

10.补充问题

在虚拟按钮试验中,我们发现尽量用更大的物体去覆盖虚拟按钮的面积区域,识别成功度越高,便于本次试验的成功

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

【04】Unity AR 2022Vuforia——虚拟按钮超详细教程【含代码】 的相关文章

  • Unity Animator 动画没切换

    恶魔射手 Survival Shooter 项目 有两个动画 一个是静止时的Idle 一个是走路时候的Move 如下图 设置好动画状态机后发现按方向键后还是Idle 没反应 而一直按着方向键后呢又动起来了 最后找到了真相 原来选中了 Has
  • Unity 安卓打包

    Unity打包的方式有很多种 自动打包和手动打包 今天小弟就鼓捣鼓捣unity手动打包 如果想动态打包的话 可以去看其他大佬的帖帖哈 unity打包先配置环境 下载unity的时候可以顺道把unity的安卓包下载下来 如果忘了也没事 可以从
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • Unity中级客户端开发工程师的进阶之路

    上期UWA技能成长系统之 Unity高级客户端开发工程师的进阶之路 得到了很多Unity开发者的肯定 通过系统的学习 可以掌握游戏性能瓶颈定位的方法和常见的CPU GPU 内存相关的性能优化方法 UWA技能成长系统是UWA根据学员的职业发展
  • Unity-AR 简介

    Unity AR 简介 现有Unity AR Sdk ARKit 苹果推出的AR开发平台 ARCore Google 推出的增强现实 SDK ARFoundation ARFoundation是ARKit XR插件和ARCore XR插件
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • 跟踪丢失后如何保持跟踪的图像目标模型对象?

    我正在使用 Unity3d 和 Vuforia 开发 AR 应用程序 我想保留丢失时跟踪的 ImageTarget 对象 跟踪丢失后如何保持跟踪的图像目标模型对象 处理跟踪丢失时发生的情况的脚本称为DefaultTrackableEvent
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • 解读 | VR体验式教育的优势 让教育触手可及

    大家好 我是极智视界 欢迎关注我的公众号 获取我的更多前沿科技分享 邀您加入我的知识星球 极智视界 星球内有超多好玩的项目实战源码和资源下载 链接 https t zsxq com 0aiNxERDq 很多孩子过多地沉浸在所谓的 传统教育
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • Xcode 4.2 中的未知类型名称“命名空间”

    我正在编译QCAR SDK 但是当我向项目中添加更多框架后 它提示错误 Matrices h ifndef QCAR MATRIX H define QCAR MATRIX H namespace QCAR Matrix with 3 ro
  • 如何将语音识别添加到Unity项目中? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用 Vuforia 开发一个增强现实项目 该项目使用语音识别来控制 Unity 中的对象
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变

随机推荐

  • 【MATH6005-Introduction to Python and MATH6181-Python & Forecasting】

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 Mid module Assignment Assignment 1 TASK1 Function prototype Function Behavior atributes
  • vue实现浏览器桌面通知

    浏览器桌面通知 当浏览器最小化 或者切换到其他标签页不在当前系统页面 或在其他页面时依然可以显示通知 使用前注意 生产环境地址必须为https协议 开发环境可以用localhost IP地址 且必须允许显示通知才能显示桌面通知 存在兼容性问
  • golang urfave/cli 命令包

    官方文档 https godoc org github com urfave cli 提供了一个命令行框架 go get github com urfave cli import github com urfave cli 导入包 cli
  • GET和POST之间的主要区别

    1 GET是从服务器上获取数据 POST是向服务器传送数据 2 在客户端 GET方式在通过URL提交数据 数据在URL中可以看到 POST方式 数据放置在HTML HEADER内提交 3 对于GET方式 服务器端用Request Query
  • 认识动态规划

    你的打赏是我奋笔疾书的动力 概念篇 线性规划 下图给出了模型 其中目标函数和约束条件里面的不等式函数都是关于xi的线性函数 这类问题都有一些不错的求解方式 整数规划 若在线性模型中 变量限制为整数 则称为整数线性规划 即为整数规划 可见整数
  • 低代码——前端进阶的必修课

    近年来 随着技术的不断发展 前端开发工作变得越来越重要 作为初中级前端工程师 我们始终在追求进步 不断探索新技术 新思路 以提升自己的竞争力 而如今 学习低代码技术已刻不容缓 在这篇文章中 我将为大家介绍前端进阶的高级指南 重点探讨低代码技
  • JS-----数据结构与算法(2)

    目录 三 栈结构 1 认识栈结构 2 封装栈结构 3 应用 3 1 十进制转二进制 3 2 进制转换法 四 队列 1 队列是什么 2 队列的封装 3 队列的应用 击鼓传花 4 双端队列 5 判断是否为回文 三 栈结构 1 认识栈结构 栈 s
  • hdu 2024C语言合法标识符

    链接http acm hdu edu cn showproblem php pid 2024 思路 根据定义写 1 所有标识符必须由一个字母 a z或A Z 或下划线 开头 2 标识符的其它部分可以用字母 下划线或数字 0 9 组成 3 大
  • python中format的用法-python基础_格式化输出(%用法和format用法)

    目录 用法 1 整数的输出 o oct 八进制 d dec 十进制 x hex 十六进制 1 gt gt gt print o 20 2 24 3 gt gt gt print d 20 4 20 5 gt gt gt print x 20
  • 体积着色器(Volume Shader)

    控制体积材质 如灯光雾 的颜色 透明度和蒙版不透明度 通过该着色器 可以直接将其他属性和效果与材质的颜色 透明度和蒙版不透明度相连 体积着色器 Volume Shader 可用于 聚光灯 Spot Light 点光源 Point Light
  • 月份表示用指针数组保存表示每个月份的英文单词以及“Illegal month”的首地址,然后编程实现:从键盘任意输入一个数字表示月份值n,程序输出该月份的英文表示,若n不在1~12之间,则输出“Il

    提示 各个月份的写法分别是 January February March April May June July August September October November December 程序的运行结果示例1 Input mon
  • WDK学习笔记_区块链项目实现_MAE

    文章目录 摘要 项目 区块链凤鸡溯源项目的实现 实现总流程 1 1 编写区块链网络配置文件 1 1 1 证书配置文件 crypto config 总体逻辑 详情 代码 1 1 2 创世区块及通道配置文件 总体逻辑 详情 代码 1 1 3 启
  • Chrome浏览器修改页面背景色

    转自 http jingyan baidu com article 5552ef47315ef9518ffbc9e7 html 有时候我们用浏览器看网页的内容时 如果长时间盯着白底黑字的屏幕 眼睛会很累 希望把网页页面的默认颜色改为淡绿色
  • 二叉树概念

    1 掌握树的基本概念 树 是一类重要的非线性数据结构 是以分支关系定义的层次结构 每个结点有零个或多个子结点 没有父结点的结点称为根结点 每一个非根结点有且只有一个父结点 除了根结点外 每个子结点可以分为多个不相交的子树 2 掌握树的相关概
  • Nginx安装和反向代理配置

    什么是反向代理 反向代理是指以代理服务器来接受internet上的连接请求 然后将请求转发给内部网络上的服务器 并将从服务器上得到的结果返回给internet上请求连接的客户端 此时代理服务器对外就表现为一个反向代理服务器 反向代理代理的是
  • 查看相关性

    查看相关性 方法一 df to csv data1 csv import matplotlib pyplot as plt import seaborn as sns 变量相关性分析 fig ax plt subplots fig set
  • 逻辑回归案例练习

    逻辑回归 场景一 在训练的初始阶段 我们将要构建一个逻辑回归模型来预测 某个学生是否被大学录取 设想你是大学相关部分的管理者 想通过查看申请学生的两次测试的评分 来决定他们是否被录取 现在你拥有之前申请学生的可以用于训练逻辑回归的训练样本集
  • 钉钉微应用接入(企业内部开发)

    文档中心 https open doc dingtalk com 钉钉后台配置 创建微应用流程 获取企业号CorpID Secret 登录钉钉OA管理后台 微应用 工作台设置 仅企业主管理员可查看 应用开发流程 注册企业 进入OA管理后台
  • 原来gdb的底层调试原理这么简单

    一 前言 这篇文章来聊聊大名鼎鼎的GDB 它的豪门背景咱就不提了 和它的兄弟GCC一样是含着金钥匙出生的 在GNU的家族中的地位不可撼动 相信每位嵌入式开发工程师都使用过gdb来调试程序 如果你说没有用过 那只能说明你的开发经历还不够坎坷
  • 【04】Unity AR 2022Vuforia——虚拟按钮超详细教程【含代码】

    04 Unity AR 2022Vuforia 虚拟按钮超详细教程 含代码 虚拟按钮超详细教程 含代码 目录 04 Unity AR 2022Vuforia 虚拟按钮超详细教程 含代码 1 前期工作 2 创建Virtual Button 3