Unity+vuforia虚拟按键连接MQTT(EMQX)实现AR+IOT(Unity C#代码实现)(一)(初步AR实现)

最近在尝试unity识别出对应图像之后呈现出对应的呈现出对应的虚拟模型;并且出现对应的虚拟按键可供交互;unity连接上自身搭建的EMQX服务器;可发送到对应的信息到EMQX,再由ESP8266/ESP32订阅对应topic接受指令,实现对应的操作。

想写篇文章来记录一下可发的流程,本来是想一篇文章全部写完的,但是发现如果挤在一篇里面篇幅会太长了,所以打算分开几篇去记录。

这篇文章是第一篇,主要是简单地介绍了Unity和Vuforia的下载使用,并且实现初步的识别图片并呈现对应的3D模型。接下来几篇会介绍虚拟按键的运用以及Unity连接上EMQX并发送对应的指令。下面是这篇文章可以实现的最终效果图。

28cf91faf3984445a2b64451080a38a7.jpeg

目录

开发环境

手机Android版本

硬件

第一步:下载Unity

第二步:加载Vuforia

第三步:借助Vuforia在Unity中导入对应图片

第四步:通过Vuforia导入对应特定图片

 第五步:在图片上实现虚拟模型的呈现

第六步:项目上传到Android手机上

开发环境

Window 10

Unity2021.3.2f1c1

Vuforia Engine 10.7(add-vuforia-package-10-7-2.unitypackage

手机Android版本

Android12

硬件

ESP32/ESP8266

第一步:下载Unity

Unity下载网站

点进去选个人版,下载就好,下载之后那个个人许可证可以一直申请的

下载后双击打开Unity应用,编辑安装栏,下载安装相应的Unity编辑器

7f082cf10ec246efabd480006abff9bc.png

在Unity编辑器模块里面要添加Android的模块,不然不可以开发到手机里面

09019456c8584a77a5b7bcf93cb65fd1.png

 安装完编辑器后就可以点开项目,去创建对应的项目了

e61ff613336c4d369042b57d084af852.png

 上面那个“启用PlasticSCM并同意政策条款”不用勾选

如果它说许可证过期的话,直接去个人那里选择管理许可证,然后创建个人许可证就好

第二步:加载Vuforia

Vuforia官网

进去之后,下载选择第一个"Add Vuforia Engine to...",然后下载完之后会出现对应的.unitypackage后缀文件。然后直接双击点开就会自动加载进入Unity已经打开的项目里面(切记要先打开对应的Unity项目里面才可以导入)

fe5fee7f1bdf44a58fc1589e9129753d.png

7fb12ad1a6c64605a55d43ce1c9f0bb0.png

53ca2cba63044a8aa1efa899790de9c7.png

第三步:借助Vuforia在Unity中导入对应图片

先点击log in,然后去注册Vuforia账户(邮箱注册就好)

然后点击Develop,然后点击Get Basic创建一个自己的ID

31afd0936f1a4217afe291ecb314c81d.png

4a83781a3b71452faf600950a1ccc7b7.png

a7ca93b2ee4e410886407dfb13dc90d0.png

efd3ac3b79314acc9f4f289036561f95.png

 记住上面那个专属的KEY,接下来要复制到Unity对应的框里面

8969b902254242da8e2dd66f76921532.png

 在Unity内点击Window后点击Vuforia Configuration

da0f6f1813bb448ca4059e8143e4b81c.png

第四步:通过Vuforia导入对应特定图片

7e9466c371684dd8a2cec79d2cd35166.png

7b34b9c57e314908ba68c702559cc465.png

6ea8de6682104013bf2879ab1803fcf8.png

bc7d2968da4447f5a64ebb19ee41681e.png

e6fe335eff9344369fc0a48c8abce938.png

6111391dffbd4ba1b32e85583a2969d9.png

9ad02e5af6634a999ddc503dadd6a2e9.png

c8ded1c8d1534b04934c68f7e1591a05.png

44e67beb413f4bf39c726c0d966b8163.png

然后会生成对应的.unitypackage后缀文件,然后再在已打开Unity项目的基础上打开此文件,就会自动导入到Unity项目中

3b827b90498d4c2d92e0c2f940b469b9.png

 全选然后点击import就彳亍

 第五步:在图片上实现虚拟模型的呈现

  打开Unity项目,然后在下面的文件列表找到Image Targets这个文件夹,并且将其拖动至左边的场景栏

0108ebf45f1e40db9ade2aa591cd28e4.png

点击场景栏里面的ImageTargets文件夹设置其属性

找到下面的脚本,Type选择From Datebase;Datebase选择自己刚刚在Vuforia添加的用户文件名字;最后选择对应的image

3d61b0cca7dc43a5b9b0c5ac40710337.png

3e6cc996eff14edbbd67661bc10aa324.png

 然后就会在场景里面出现对应的图片

ec729f6364794a4cac4411578ec14849.png

然后在左边的场景列表栏中,如下图右键创建一个Cube的3D模型

3f73f49c7cad4c85ae8f3d1869da626f.png

 最后将Cube拖动进入ImageTargets场景文件里面,并在场景中调整图片与物体的相对位置即可在图片中呈现出对应的3D Cube模型

4c539fd528d44261837057c803822d5b.png

第六步:项目上传到Android手机上

在unity里面点击file后再点击Build Settings,然后选择Android再点击左下角的Player Settings进去设置

9db9d202ad0d452ba5ff8bb181b0182e.png

然后在Player里面选中安卓的logo,并找到Other Setting  

a3493129f4494dbba76dda56daf2110a.png

最后按照下图进行选择

a7130c1896dc467b9bbfbd9c4830673e.png

下一步将Android手机连接上电脑的USB插口,并且开启开发者选项

第一次下载的话还有一个调试的选项,如果没有Build的按钮就先点击那个按钮,然后等一会弄完就会出现Build And Run的选项了,接下来就直接点击Build And Run的按钮就OK了。手机可能还要接收同意安装。

4690f72fa43f4629b8927cbe64f7d33a.png

 本文就介绍到这里,下一篇会介绍Unity的虚拟按键应用以及通过虚拟按键监听借助MQTT传输信息。

 谢谢大家的观看!!!本人为小萌新作者,目前正在基础的海洋连滚带爬的摸索,立志成为大佬。希望发文记录一下的学习历程,如何有大哥发现出文章有问题欢迎积极提出。如果志同道合之友希望一起钻研这一方面的欢迎一起讨论,欢迎在评论区积极分享意见,如果有想和作者进一步探讨的朋友可以加我QQ:2640514807

8cca7d18c86383d8625c016bc7cd51a1.jpg

本文为作者独立编写

本BLOG上所有的原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为。 

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是使用VuforiaUnity实现最简单的虚拟按钮的步骤: 1. 创建一个新的Unity项目,导入Vuforia插件。 2. 在Vuforia开发者门户网站上创建一个新的AR应用程序,并下载使用UnityVuforia AR应用程序包。 3. 将Vuforia AR应用程序包导入Unity项目中。 4. 在场景中添加AR相机,然后将Vuforia的Image Target添加到场景中。 5. 选中Image Target,将其Image Target Behaviour组件中的Image Target Type设置为Predefined,并选择一个预定义的图像。 6. 在场景中创建一个Cube或其他形状的游戏对象,将其作为虚拟按钮。 7. 将虚拟按钮的位置和旋转与Image Target对齐。 8. 为虚拟按钮添加一个Box Collider组件并勾选Is Trigger。 9. 为虚拟按钮添加一个新的脚本,并在脚本中实现OnClick函数。例如: ``` public class VirtualButtonScript : MonoBehaviour, IVirtualButtonEventHandler { private VirtualButtonBehaviour virtualButton; void Start() { virtualButton = GetComponent<VirtualButtonBehaviour>(); virtualButton.RegisterEventHandler(this); } public void OnButtonPressed(VirtualButtonBehaviour vb) { // 当按钮被按下时执行的代码 } public void OnButtonReleased(VirtualButtonBehaviour vb) { // 当按钮被释放时执行的代码 } } ``` 10. 在虚拟按钮的GameObject上添加Virtual Button Behaviour组件,并将其设置为使用刚刚创建的脚本。 11. 运行应用程序,并在相机中将图像目标对准预定义的图像。当虚拟按钮被按下时,OnClick函数将被调用。 这就是实现最简单的虚拟按钮所需的步骤。您可以根据自己的需求进行扩展和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JASON丶LI

作者码力不足了,卑微的求个打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值