Unity+最新版Vuforia虚拟按钮

这篇具有很好参考价值的文章主要介绍了Unity+最新版Vuforia虚拟按钮。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、准备

二、创建虚拟按钮

 三、编写脚本

总结


前言

我们在做AR项目或者参加比赛的时候为了增强用户体验感,经常考虑做一个虚拟按钮的功能。个人比较喜欢用Vuforia,因为EasyAR有一个巨大的水印。初学者往往会被虚拟按钮的名字吓到,听着很高大上的名字,其实就是将普通的图像识别后的显示或消失事件改成了用户自定义的类似于按钮点击的事件。


 文章来源地址https://www.toymoban.com/news/detail-737744.html

一、准备

虚拟按钮其实就是图像识别,因此第一步我们需要找一张合适的图片(能识别的星级越高越好,最好三星以上)。

vuforia 虚拟按钮,unity,ar

 Vuforia图像识别的质量是根据图片的明暗度以及特征点来识别的,例如:

vuforia 虚拟按钮,unity,ar

 点击我们上传的需要识别的图片,点击下方的"Show Features"按钮可以看到最终Vuforia识别的图vuforia 虚拟按钮,unity,ar

 即Vuforia判断图片是否为目标识别图与图片的颜色没有任何关系,首先都会被转化成黑白图,再进行进一步的比对。可以看到图中标出了目标识别图的特征点,这也是判断图片是否为目标图的第二步:根据特征点的位置和数量比对。显然以上这张图的特征点不是很多,因此它能被成功识别的概率相对较小,Vuforia给出了三星。

vuforia 虚拟按钮,unity,ar

 显然这张桃色K的特征点远多于上面那张图,这张图Vuforia给出了五颗星。通过对于我们可以发现特征点往往存在于图像中尖锐的拐点处,因此在选择识别图时尽量选择有尖锐的棱角,以及多棱角的图片,这样更能增加图像识别的正确性。这里也需要考虑到虚拟按钮的放置位置:既要符合项目需求又能做到高精度识别和美观。更多关于识别图的选择上请参考这位大佬的文章:Vuforia识别目标星级评分机制

 

二、创建虚拟按钮

在做好以上的准备工作后我们就可以下载Vuforia资源并导入Unity中了。

1.既然虚拟按钮就是建立在图像识别的基础上的,那么第一步,我们应该新建一个“ImageTarget”。

vuforia 虚拟按钮,unity,ar

2.在“ImageTarget”脚本中选择目标识别图所在的数据库,将ImageTarget设置为我们想要识别的图片。

vuforia 虚拟按钮,unity,ar

 3.给添加目标识别图添加虚拟按钮。展开上图中的“Advanced”,点击“Add Virtual Button”。然后我们就能发现ImageTarget下面多了一个VirtualButton。

vuforia 虚拟按钮,unity,arvuforia 虚拟按钮,unity,ar

 4.我们可以在Scene视图中看到出现了一个蓝色的矩形,这就是我们创建的虚拟按钮,我们可以手动调节按钮的位置和大小;在Inspector面板中可以设置按钮的名字以及识别的敏锐度。注意:当有多个按钮时可以在下面的脚本中通过这里设置的Name直接访问到对应的虚拟按钮。

vuforia 虚拟按钮,unity,ar vuforia 虚拟按钮,unity,ar

 三、编写脚本

我们需要新建一个“VirtualButtonControl”脚本(名字自拟)放在对应的ImageTarget下面。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;

public class VirtualButtonControl : MonoBehaviour
{
    //获取ImageTarget下所有VirtualButtonBehaviour组件(虚拟按钮自带的组件)
    VirtualButtonBehaviour[] vbs;            
    public GameObject text;
    // Start is called before the first frame update
    void Start()
    {
        text.SetActive(false);
        vbs = this.GetComponentsInChildren<VirtualButtonBehaviour>();
        for (int i = 0; i < vbs.Length; i++)
        {
            vbs[i].RegisterOnButtonPressed(OnButtonPressed);
            vbs[i].RegisterOnButtonReleased(OnButtonReleased);
        }
    }

    // Update is called once per frame
    void Update()
    {

    }
    //按钮被按下时
    private void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        //通过VirtualButtonBehaviour下的VirtualButtonName属性即以上提到的Name属性获取对应的虚拟按钮
        if (vb.VirtualButtonName == "ShowText")
            text.SetActive(true);
    }
    //按钮释放时
    private void OnButtonReleased(VirtualButtonBehaviour vb)
    {

    }
}

将我们按钮按下(识别到然后被遮挡)和释放(遮挡然后再次识别到)时按照个人需求将事件写入以上注释下对应的函数中(例如以上当按钮ShowText按下时显示text物体),这样就实现了虚拟按钮的功能,是不是很简单呢?最后特别注意:若一张图片既要完成普通的图片识别功能又要出现虚拟按钮,例如图片识别后出现模型和虚拟按钮,虚拟按钮可能是对模型进行大小或者位置上的控制,那么这时一定一定要将模型放在虚拟按钮之上!!!

vuforia 虚拟按钮,unity,ar

 

 

总结

好啦,以上就是这篇文章的全部内容啦,小伙伴们有什么更好的方法欢迎留言一起讨论互相学习呀。博主有什么错误和不严谨的地方也欢迎大家提出,我一定及时纠正!!!最后感谢小伙伴看完这篇文章,希望对你有所帮助。

 

 

到了这里,关于Unity+最新版Vuforia虚拟按钮的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VMware 最新版 - 虚拟机安装、激活、Centos安装、XShell 连接虚拟机、网络配置(全流程)

    目录 一、VMware 从安装到使用全流程 1.1、安装和激活 1.2、下载 Centos 镜像(以 7 为例) 1.3、创建虚拟机 1.4、网络配置 1.5、验证网络是否可用 a)从以下地址下载虚拟机 以下链接来自 B站-小段师兄(官网下载也可以,但是没有梯子可能会比较慢): 虚拟机官方版下载丨最新版

    2024年02月02日
    浏览(58)
  • unity 使用Vuforia扫描实体物体交互

    效果: unity 使用Vuforia扫描实体物体 效果 图片识别 新手教程链接: link 识别物体 新手教程链接: link unity Holoens2开发使用Vuforia 新手教程链接: link 运行官方 Vuforia Hololens 2 Sample 教程 链接: link 最近有个Holoens2 识别灭火器实体交互的项目,大概有2-3年没有搞MR的项目了,重新看一

    2024年02月05日
    浏览(42)
  • Unity-Vuforia篇-图片识别

    在我们识别图片之前我们需要知道Vuforia识别机制,这样有利于我们在选择图片时进行抉择这个图片适不适合做为识别图片。 Vuforia是通过检测自然特征点进行匹配的,也就是说我们实时检测的图像的特征点与我们数据库中的模板图片(或选择的贴图图片)特征点一致时才能识

    2024年02月05日
    浏览(68)
  • Vuforia+Unity AR项目开发测试

    测试vuforia环境可用 Vuforia 是一个跨平台的增强现实 (AR) 和混合现实 (MR) 应用程序开发平台,同时Unity作为开发工具,又因为Unity是一款优秀的游戏引擎,对3D模型的导入以及控制非常方便,非常适合开发AR程序;所以本文我们将利用Unity和Vuforia插件来进行项目测试开发。 开发工

    2024年02月09日
    浏览(60)
  • unity 使用Vuforia扫描物体( ModelTarget 模型目标)

    1、下载vuforia插件vufora  2、下载模型生成器Model Target Generator  3、将vuforia插件导入到unity ,我 使用的unity是2021版本,导出插件时,只显示有两个文件,导入后,会有一个弹框 让更新插件,点击updata,更新就可以,  4、安装模型生成器,下载后,解压,双击安装 5、模型生成

    2024年02月14日
    浏览(53)
  • 【Vuforia+Unity】AR02-长方体物体识别

      选择多维长方体图,这个长方体是生活中的真实物体的拍摄图,提前把6个面拍摄好并裁剪干净。 官网创建模型 https://developer.vuforia.com/targetmanager/project/targets?projectId=0ddbb5c17e7f4bf090834650bbea4995av=false  设置长宽高,这个长宽高需要与真实物体的长宽保持一样的比例 提前处理好

    2024年02月21日
    浏览(45)
  • Unity Vuforia 输出时报错 AR输出报错

    Unity Vuforia 输出时报错 AR输出报错 全英文路径改过了,还有什么会引起输出报错

    2024年02月03日
    浏览(47)
  • 【Vuforia+Unity】AR04-地面、桌面平面识别功能

     不论你是否曾有过相关经验,只要跟随本文的步骤,你就可以成功地创建你自己的AR应用。 官方教程Ground Plane in Unity | Vuforia Library 这个功能很棒,但是要求也很不友好,只能支持部分移动设备,具体清单如下:  Recommended Devices | Vuforia Library IOS Devices Device Name Comments iPhone

    2024年02月22日
    浏览(49)
  • 如何在 Vuforia 中配置 Unity Package Manager?

    作者:禅与计算机程序设计艺术 Vuforia开发包被分为了三个不同版本:Vuforia Engine SDK, Vuforia Augmented Reality SDK, Vuforia Extended Tracking SDK。为了使开发者能够更方便的管理这些不同的开发包及其依赖关系,Unity官方引入了Unity Package Manager(UPM)机制。而Vuforia中不支持UPM机制。因此本文

    2024年02月07日
    浏览(42)
  • 【Vuforia+Unity】AR06-空间环境识别功能(AreaTargets)

    Vuforia原理: 把被识别的物体转成图、立体图、柱形图,3D模型、环境模型,然后模型生成Vuforia数据库-导入Unity-参考模型位置开始摆放数字内容,然后参考模型自动隐藏-发布APP-识别生活中实物-数字内容叠加上去!   不论你是否曾有过相关经验,只要跟随本文的步骤,你就

    2024年04月15日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包