【EasyAR实战项目】图像追踪+触屏交互

这篇具有很好参考价值的文章主要介绍了【EasyAR实战项目】图像追踪+触屏交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

话不多说,先看实现效果

【EasyAR实战项目】图像追踪+触屏交互

开发准备

以下为作者开发的环境,当然也可以使用更高的版本,尤其是EasyAR的版本可以选择更高的,因为这玩意儿版本迭代的太快了,而且更高版本所支持的手机型号更新,兼容性更强。

1 Unity Hub2020.3.33

下载地址  Unity所有版本下载 | Unity中国官网

2 EasyAR Sense Unity Plugin4.2

下载地址  下载-EasyAR官网

3 VScode

下载地址  Download Visual Studio Code - Mac, Linux, Windows

4 图片与3D模型(以下下载内容为本项目中使用的资源)

下载地址  Muryotaisu | 角色 | Unity Asset Store

工具下载

Unity Hub与Plugin下载

【EasyAR实战项目】图像追踪+触屏交互

 安装JDK和Android SDK模块,若电脑环境为IOS就使用IOS Build Support

【EasyAR实战项目】图像追踪+触屏交互

EasyAR SDK下载

【EasyAR实战项目】图像追踪+触屏交互

【EasyAR实战项目】图像追踪+触屏交互获取Sense License Key

【EasyAR实战项目】图像追踪+触屏交互

 登录后申请Sense许可证【EasyAR实战项目】图像追踪+触屏交互

稀疏空间矩阵在本项目中用不到,如果后续需要也可以申请。应用名称取啥都可以,但是Package Name必须要与自己创建的3D模板包一致(见开发步骤中第一步)

这里PackageName填错了,正确的应该是 com.DefaultCompany.EasyARdem1

【EasyAR实战项目】图像追踪+触屏交互

开发步骤

1 创建3D模板

注意:此时的Package name应当与所申请Sense许可证中填写的Package Name相一致

【EasyAR实战项目】图像追踪+触屏交互

2 将EasyAR SDK导入到环境中 

【EasyAR实战项目】图像追踪+触屏交互

 【EasyAR实战项目】图像追踪+触屏交互

 【EasyAR实战项目】图像追踪+触屏交互

3 配置EasyAR基本信息

【EasyAR实战项目】图像追踪+触屏交互

【EasyAR实战项目】图像追踪+触屏交互

 回到开发者中心获取Sense Lisense Key【EasyAR实战项目】图像追踪+触屏交互

4 导入3D模型与所需识别的图片

因为作者下载过该模型,所以可以直接在Unity中打开,若第一次下载与上述EasyAR SDK的导入方法一致

【EasyAR实战项目】图像追踪+触屏交互

【EasyAR实战项目】图像追踪+触屏交互

将模型放置于环境中【EasyAR实战项目】图像追踪+触屏交互

在Assets目录下创建一个StreamingAssets文件,将所后续所需识别的图片放置在该文件夹中

【EasyAR实战项目】图像追踪+触屏交互

 6  将Image Target与EasyAR_Image_Tracker文件放入工程中

【EasyAR实战项目】图像追踪+触屏交互

【EasyAR实战项目】图像追踪+触屏交互

 7 在ImageTarget对象中,将所需识别的图片放入Image Target Controller脚本中,当照片的名字输入正确后,场景中会自动出现所对应的照片

将Tracker对象设置为ImageTracker

【EasyAR实战项目】图像追踪+触屏交互

 8 在Easy_AR_ImageTracker对象中的AR Session脚本中的Center Target对象设置为ImageTarget

【EasyAR实战项目】图像追踪+触屏交互

 9 调整对象的位置与所需识别图片之间的距离 

【EasyAR实战项目】图像追踪+触屏交互

10  配置Camera的属性

【EasyAR实战项目】图像追踪+触屏交互

11 编写放缩与旋转脚本,实现用户对3D模型对象的交互

创建脚本

在文件夹中右击-->creat-->C#Script

【EasyAR实战项目】图像追踪+触屏交互

脚本代码如下

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

public class suofang : MonoBehaviour
{
    private Touch oldTouch1;  //上次触摸点1(手指1)
    private Touch oldTouch2;  //上次触摸点2(手指2)
    void Update()
    {
        //没有触摸,就是触摸点为0
        if (Input.touchCount <= 0)
        {
            return;
        }
        //单点触摸, 水平上下旋转
        if ( Input.touchCount ==1)
        {
            Touch touch = Input.GetTouch(0);
            Vector2 deltaPos = touch.deltaPosition;
            transform.Rotate(Vector3.down * deltaPos.x, Space.World);//绕Y轴进行旋转
            transform.Rotate(Vector3.right * deltaPos.y, Space.World);//绕X轴进行旋转,下面我们还可以写绕Z轴进行旋转
        }
        //多点触摸, 放大缩小
        Touch newTouch1 = Input.GetTouch(0);
        Touch newTouch2 = Input.GetTouch(1);
        //第2点刚开始接触屏幕, 只记录,不做处理
        if (newTouch2.phase == TouchPhase.Began)
        {
            oldTouch2 = newTouch2;
            oldTouch1 = newTouch1;
            return;
        }
        //计算老的两点距离和新的两点间距离,变大要放大模型,变小要缩放模型
        float oldDistance = Vector2.Distance(oldTouch1.position, oldTouch2.position);
        float newDistance = Vector2.Distance(newTouch1.position, newTouch2.position);
        //两个距离之差,为正表示放大手势, 为负表示缩小手势
        float offset = newDistance - oldDistance;
        //放大因子, 一个像素按 0.01倍来算(100可调整)
        float scaleFactor = offset / 75f;
        Vector3 localScale = transform.localScale;
        Vector3 scale = new Vector3(localScale.x + scaleFactor,
                                    localScale.y + scaleFactor,
                                    localScale.z + scaleFactor);
        //在什么情况下进行缩放
        if (scale.x >= 0.5f && scale.y <= 2f)
        {
            transform.localScale = scale;
        }
        //记住最新的触摸点,下次使用
        oldTouch1 = newTouch1;
        oldTouch2 = newTouch2;
    }
}

将脚本对象拖放于模型上

【EasyAR实战项目】图像追踪+触屏交互

文件导出

文件导出为apk格式,可直接在手机上运行

1 设置导出格式,勾选ARM64和IL2CPP是为了提高该项目与手机环境的兼容性

【EasyAR实战项目】图像追踪+触屏交互

 【EasyAR实战项目】图像追踪+触屏交互

【EasyAR实战项目】图像追踪+触屏交互

2 将电脑调试转换成安卓平台

【EasyAR实战项目】图像追踪+触屏交互

3 电脑和手机通过USB进行连接,随后在Run Device选项中选择自己的手机,点击Buile and Run即可

【EasyAR实战项目】图像追踪+触屏交互

 4 如果每次调试通过这种方式还是比较麻烦的,其实只要第一次在Build setting中设置好格式后,之后在文件中直接点击Build and Run即可快速调试

5 成功运行后在手机桌面上会有该项目的软件

【EasyAR实战项目】图像追踪+触屏交互

运行结果

【EasyAR实战项目】图像追踪+触屏交互

本项目中的手势交互为用户触屏,还有一个更符合AR体验的方式,即隔空手势交互,可参考下述文章

【AR隔空手势交互】Unity中基于Manomotion实现隔空手势交互_北村南的博客-CSDN博客_unity 手势交互

AR增强现实系列

🔥 EasyAR制作APP AR项目

🔥 Manomotion实现隔空手势交互

🔥 Kivicube制作微信小程序AR项目文章来源地址https://www.toymoban.com/news/detail-468447.html

到了这里,关于【EasyAR实战项目】图像追踪+触屏交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [MAUI 项目实战] 手势控制音乐播放器(二): 手势交互

    @ 目录 原理 交互实现 容器控件 手势开始 手势运行 手势结束 使用控件 拖拽物 创建pit集合 项目地址 定义一个拖拽物,和它拖拽的目标,拖拽物可以理解为一个平底锅(pan),拖拽目标是一个坑(pit),当拖拽物进入坑时,拖拽物就会被吸附在坑里。可以脑补一下下图: 你

    2023年04月08日
    浏览(53)
  • 【实战项目开发技术分享】ChatGPT与机器人的交互

    ChatGPT是一种基于大规模预训练的深度学习模型,它通过分析数百万条文本数据来学习自然语言的语法、语义和上下文。这个强大的深度学习模型使得它能够理解和生成文本,从而能够以几乎与人类相媲美的方式进行对话。ChatGPT的问世代表了自然语言处理领域的一次革命性突

    2024年02月07日
    浏览(66)
  • WebView交互架构项目实战(四):WebView与Native的通信框架手写实践

    其中wholeJS就是JS文件转化而来的字符串,然后调用 webView.loadUrl(\\\"javascript: \\\" + wholeJS); 1 就可以看到和之前一样的效果。 方式2: 通过evaluateJavascript方法 相较于loadUrl,evaluateJavascript的优势在于异步加载,还可以将执行JS代码的结果带回来,我们以下面一个小例子来说明。 我们在

    2024年04月29日
    浏览(42)
  • 【VRTK】【VR开发】【Unity】7-配置交互能力和向量追踪

    https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 目前为止,我们虽然设定了手模型和动画,还能够正确根据输入触发动作,不过还未能与任何物体互动。要互动,需要给手部设定相应的Interactor能力。 在Hierarchy中选中[VRTK_CAMERA_RIGS_SETUP] ➤ Camera Rigs, Tracked Alias

    2024年02月04日
    浏览(37)
  • 计算机视觉项目实战-基于特征点匹配的图像拼接

    😊😊😊 欢迎来到本博客 😊😊😊 本次博客内容将继续讲解关于OpenCV的相关知识 🎉 作者简介 : ⭐️⭐️⭐️ 目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉深度学习(keras、pytorch、yolo),python网页爬虫、机器学习、计算机视觉(OpenCV)、

    2024年02月02日
    浏览(50)
  • Unity Meta Quest 一体机开发(十三):【手势追踪】自定义交互事件 EventWrapper

    此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spatial XR 高级社区

    2024年01月19日
    浏览(52)
  • 【微信小程序调用百度API实现图像识别功能】----项目实战

    本章主要讲述: 如何更快的上手小程序 如何搭建一个页面以及跳转到另一个页面 如何调用百度API接口实现图像识别技术 如何在微信小程序的后台添加合法域名        私信获取源码,有问题可以关注留言或私信,计算机毕业设计(小程序,网页设计,数据库,php开发等) 目录

    2024年02月09日
    浏览(66)
  • OpenCV图像处理——目标追踪

    图像处理总目录←点击这里 24.1.1、原理 目标检测 :运行之后按下s,通过鼠标对某个目标进行检测,然后点击空格或者回车 目标追踪 :opencv的八种追踪算法 BOOSTING Tracker:助推跟踪器 给定一个新的帧,分类器在前一个位置附近的每个像素上运行,并记录分类器的得分。对象

    2024年02月14日
    浏览(33)
  • OpenCV项目开发实战--基于Python/C++实现鼠标注释图像和轨迹栏来控制图像大小

    鼠标指针是图形用户界面 (GUI) 中的关键组件。没有它,您就无法真正考虑与 GUI 进行交互。那么,让我们深入了解 OpenCV 中鼠标和轨迹栏的内置函数。我们将演示如何使用鼠标来注释图像,以及如何使用轨迹栏来控制图像的大小 我们将使用下图来演示 OpenCV 中鼠标指针和轨迹

    2024年02月11日
    浏览(53)
  • DB-GPT:强强联合Langchain-Vicuna的应用实战开源项目,彻底改变与数据库的交互方式

    今天看到 蚂蚁科技 Magic 开源的DB-GPT项目,觉得创意很好,集成了当前LLM的主流技术,主要如下 Langchain: 构建在LLM之上的应用开发框架 HuggingFace: 模型标准,提供大模型管理功能 Vicuna: 一个令GPT-4惊艳的开源聊天机器人,基于LLaMA模型和ShareGPT数据集训练的,能够达到接近Cha

    2024年02月15日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包