【Unity3D】快速上手 EasyAR

news2024/12/28 2:02:26

目录

一,AR技术

1.AR简介

2.AR特点

3.AR工作原理

二,EasyAR 插件

1.获取Key

2.EasyAR 插件下载和导入

三,快速上手 EasyAR


AR

1.AR简介

  • AR(Augmented Reality,增强现实)体验的基本需求是如何在用户所处的真实世界空间与可视化建模的虚拟化空间之间创建对应关系。

2.AR特点

  1. 真实世界和虚拟世界的信息集成。
  2. 具有是实时交互性。
  3. 是在三维尺度空间中增添定位虚拟物体。

3.AR工作原理

  • AR的基本概念是将图像,声音和其他感官增强功能实时添加到真实世界的环境中。
  • AR正常工作所需要的3个组件
    • 头戴式显示器
    • 跟踪系统
    • 移动计算能力
  • AR开发人员的目标就是将这3个组件集成到一个单元,放置在用带子绑定的设备中,该设备能以无线方式将信息转播到类似于普通眼镜的显示器上面。

EasyAR

EasyAR 插件是免费,灵活好用的全平台增强现实引擎,它不会显示水印,也没有识别次数限制。它提供以下功能:

  1. 支持使用平面目标的AR。
  2. 支持1000个以上本地目标的流畅加载和识别。
  3. 支持基于硬解码的视频(包括透明视频和流媒体)的播放。
  4. 支持二维码识别和多目标同时跟踪。

1.获取Key

在使用 EasyAR 插件时,需要一个 Key 才能使用,具体获取按如下操作:

  1. 到官网(https://www.easyar.cn/)进行账号注册(这里不多解释),注册好后进行登录成功会显示如下,然后单击“我需要一个新的 Sense 许可证密钥”按钮,来为 AR 项目获取 Key
  2. 在弹出的“订阅 Sense”窗口中,选择个人版进行学习,个人版不可商用,有水印。填写应用程序名称和Unity打包移动平台时必填的 Package Name(在后面项目中会使用到),然后确认即可。
  3. 确认完后,就可以查看 Key,大致如下所示。(该 Key 在后面的 AR 项目中会使用到)

2.EasyAR 插件下载和导入

  1. 到 EasyAR官网 下载最新版本的 Unity Plugin
  2. 下载完成后解压文件,内容如下
  3. 在 Unity 3D 编辑器中选择 Window —> Package Manager 命令打开包管理器,然后单击包管理器左上角的 加号 按钮,选择 Add package from tarball... 命令,从本地导入插件包
  4. 在弹出的对话框中选择刚下载并解压后的插件包
  5. 导入完成即可,最后会在 Unity 3D 编辑器的菜单栏多出一个 EasyAR 菜单项

EasyAR

  1. 新建一个 Unity 3D 项目,命名为 HelloAR
  2. 在菜单栏中找到 EasyAR 菜单项,选择 EasyAR—>Sense—>Configuration 命令,进行插件参数配置,然后会在工程目录中多出一个 Resources 目录。(注意新建一个项目后要重新导入 EasyAR 插件包)

  3. 点击 Project 视图中的 Settings 文件,在 Inspector 视图中,复制刚申请的 Key,然后填入 EasyAR SDK Lincese Key 一栏中。

  4. 在 Prohect 视图中新建一个 StreamingAssets 文件夹,然后随便拖入一张图片到该文件夹内,用于 AR 识别图。

  5. 点击 SampleScene 场景,设置 Main Camera 对象的 Camera 组件下的 ClearFlags 属性设为 Solid ColorBackground 属性设为 纯黑色。(必须将Camera组件的 Clear Flags 属性设为 Solid Color,不然无法显示摄像头的画面)

  6. 在 Hierarchy 视图中,单击左上角的加号按钮,按如下操作添加 AR Session 对象和 Image Target 对象。

  7. 右击 Hierarchy 视图中的 Image Target 对象,新建一个 Cylinder 的3D游戏对象,并将该对象的 Transform 组件设置如下。

  8. 选中 Image Target 对象,在 Inspector 面板中调整参数,如下(PathName为刚导入的图片名称)

  9. 选中 Main Camera 对象,按 Ctrl+Shift+F 快捷键快速将选中的对象(Main Camera)在窗口中对齐,使其正向照射到图片上,然后保存场景。

  10. 选择 File —> Build Settings 命令,弹出 Build Settings 窗口,单击 Add Open Scenes 按钮会将当前场景添加进去,Platform 选择 Android 平台(右边Android下的参数用途参考Unity 官方文档),然后单击 Switch Platform 按钮,如下所示

  11. 单击上图左下角第四步的 Player Settings... 按钮,弹出 Project Settings 窗口,选择 Player,然后展开 Other Setting 选项,将 Package Name 属性修改为前面申请 Key 时填写的字段。

  12. 最后回到 Build Settings 窗口,单击右下角的 Build 按钮进行打包,将生成的安卓包安装到手机上,成功运行后将手机扫描刚导入Unity项目中的那张图片,然后会在手机前面出现模型了,运行效果如下视频所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RedLock算法(红锁算法)介绍

文章目录一. 部署图二. RedLock算法简单介绍加锁解锁一. 部署图 各redis独立部署,各自独立 二. RedLock算法简单介绍 加锁 应用程序获取系统当前时间应用程序使用相同的kv值依次从多个redis实例中获取锁。 如果某一个节点超过一定时间依然没有获取到锁则直接放…

Porjet1 小白学习CANoe16安装、新建工程、新建数据库、简单运行

准备工作 1,下载CANoe16(因为笔者只找到了官方提供的CANoe16的DEMO license) 2,安装CANoe16,点击默认安装即可,不需要安装驱动。 3,如果桌面没有找到CANoe16的打开方式可以参考 解决安装CANoe1…

OpenGL之Shader编程入门

1.shader 编程基础 1.1 Vertex shader与Fragment shader Vertex shader即顶点着色器,用来改变顶点的属性。Fragment shader即片元着色器,用来改变片元的颜色,在Direct3D中称为Pixel shader,像素着色器。 1.2 编程语言 面向OpenG…

C语言快速互转HEX(16进制)和原始字符串/数组

C语言快速互转HEX(16进制)和原始字符串/数组缘由这个起因是昨晚群里有人在讨论怎么把字符串转成HEX方法最佳,讨论到最后变成哪种方法效率最优了。毕竟这代码是要在MCU上面跑的,要同时考虑到时间和空间的最优解。当然讨论的是有结果…

Java8流式计算相关

目录 lambda 优点 语法介绍 语法格式一 : 语法格式二 : 语法格式三 : 语法格式四 : 语法格式五 : 语法格式六 : 方法引用 stream Stream流的常用方法: 创建动态list 创建固定长度list map filter groupingBy sum list转map: map转li…

谷粒商城学习笔记

docker 安装docker docker官方centos镜像下载地址:https://docs.docker.com/engine/install/centos/ 步骤: 先卸载,如果不是root用户在前边加上sudo sudo yum remove docker \docker-client \docker-client-latest \docker-common \docke…

C 程序设计教程(05)—— C 语言的数据类型(三):指针类型

C 程序设计教程(05)—— C 语言的数据类型(三):指针类型 该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用…

MySql中json类型数据的查询以及在MyBatis-Plus中的使用

表结构和初始数据 新建表结构 CREATE TABLE json_test (id int NOT NULL AUTO_INCREMENT,roles json DEFAULT NULL COMMENT 角色,project json DEFAULT NULL COMMENT 项目,PRIMARY KEY (id) ) ENGINEInnoDB;初始数据 INSERT INTO ctts_dev.json_test(id, roles, project) VALU…

SpringBoot 整合 xxl-job

文章目录部署 xxl-jobSpringBoot 配置maven 配置application.yaml配置 XxlJobConfigXxlJobSpringExecutor新建执行任务配置 xxl-job-admin执行器管理任务管理部署 xxl-job K8S 部署 xxl-job 参考文档:https://blog.csdn.net/weixin_42555971/article/details/12489…

【Web开发】Python实现Web服务器(Docker下部署Flask)

🍺基于Python的Web服务器系列相关文章编写如下🍺: 🎈【Web开发】Python实现Web服务器(Flask快速入门)🎈🎈【Web开发】Python实现Web服务器(Flask案例测试)&a…

分享112个PHP源码,总有一款适合您

PHP源码 分享112个PHP源码,总有一款适合您 链接:https://pan.baidu.com/s/1MaBtjYZk08o0eJT5_E79aQ?pwduldm 提取码:uldm 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载…

实战丨从0到1搭建结算平台

一、概述我们最开始分享了O2O电商支付清结算体系,接着分享了如何从0-1搭建计费体系,接下来我们分享:各方的钱算完之后怎么付出去,也即结算平台建设的实操与设计思路。1.什么是结算?说结算平台之前,先说一下…

22年 | 年前总结 | 主业谋生存,副业谋发展

22年关键词 复盘 | 极简 | 长期主义 | 阅读 | 斜杠青年 | 一事无成 | … 当然了,2023也会继续延续某些关键词。 一壶清酒,敬这红尘也敬我 很多人都在说,疫情存在的时间比任何一段恋情还要长。 而我想说,我失败的次数还超过了做…

Java设计模式中策略模式是怎么回事/怎么替代繁琐if-else语句/如何优化条件选择语句

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 6.3 策略模式 6.3.1 概述 定义了一系列算法,并将每个算法封装起来,使它们可以相互替代,且算法的变化不会影响使用算法的用户属…

【自学Python】Python注释

文章来源嗨客网(www.haicoder.net) Python注释 Python注释教程 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性。一旦程序中某部分内容被注释掉,则该内容将会被 Python 解释器忽略,换句话说&#xff0c…

一般颜色直方图

颜色直方图是一种用于图像处理和分析的图表,它可以显示图像中不同颜色的数量。通常,颜色直方图会将颜色分成几个色调区间,每个区间对应一个条形图,其中条形图的高度表示该色调区间中的像素数量。通过颜色直方图,你可以…

Mask RCNN网络源码解读(Ⅰ) --- 语义分割前言与转置卷积

目录 1.什么是语义分割 2.语义分割常见的数据集格式 3.常见的语义分割评价指标 4.转置卷积 1.什么是语义分割 常见分割任务:语义分割、实例分割、全景分割 图一 原始图片图二 语义分割图三 实例分割语义分割(例如FCN网络)可以理解为一个…

开发与项目经理之间的打情骂俏——数据库篇

👦👦一个帅气的boy,你可以叫我Love And Program 🖱 ⌨个人主页:Love And Program的个人主页 💖💖如果对你有帮助的话希望三连💨💨支持一下博主 由数据库引发的一系列探…

小论文写作指南(AI类)

参考b站沃恩智慧课程 论文结构 标题:不要太长或太短,抓住重点,简明扼要。 作者:你的作品一定力争一作,通讯作者是导师/大老板/出资人。 摘要Abstract:点明大背景(如为什么研究微表情识别,对社会有什么价值,拔高立意层次),阐述目标(我们提出模型为了在什么问题上达…

9个时间序列交叉验证方法的介绍和对比

评估性能对预测模型的开发至关重要。交叉验证是一种流行的技术。但是在处理时间序列时,应该确保交叉验证处理了数据的时间依赖性质。在之前的文章中,我们也做过相应的介绍。 在本文中,我们收集了时间序列的常用的9种交叉验证方法。这些包括样…