基于unity的HoloLens2 qrcode二维码读取
基于unity的HoloLens2 qrcode二维码读取

主要程序来自于github上的大佬:Joost van Schaik,感谢他的工作和清晰的讲解。项目地址为:LocalJoost/QRCodeService at MRTK3 (github.com)

虽然我没看懂代码,但是能够实现该功能了,以下是一些体验心得。

在unreal engine中实现二维码读取的文章请看这里:

(等待填坑ing)

这个功能跑通使用了几天时间,主要原因在于虽然编译成功了,但是一直不认二维码。

确保下面的环境已经安装完毕,其中MRTK这个是玄学,Mixed Reality OpenXR Plugin插件一开始1.7版本我失败了,并不能实现扫描功能,升级到1.9之后,又添加了一些新的包,程序跑起来好了,大家可以尝试一下更换版本。

我使用的环境如下:

unity:2021.3.23f1c1

MRTK:

MRTK Graphics Tools V0.5.12

Mixed Reality OpenXR Plugin V1.9.0

 

com.microsoft.mixedreality.openxr: 1.9.0
com.microsoft.mrtk.core: 3.0.0-pre.17
com.microsoft.mrtk.graphicstools.unity: 0.5.12
com.microsoft.mrtk.input: 3.0.0-pre.17
com.microsoft.mrtk.spatialmanipulation: 3.0.0-pre.17
com.microsoft.mrtk.standardassets: 3.0.0-pre.17
com.microsoft.mrtk.tools: 3.0.0-pre.17
com.microsoft.mrtk.uxcomponents: 3.0.0-pre.17
com.microsoft.mrtk.uxcomponents.noncanvas: 3.0.0-pre.17
com.microsoft.mrtk.uxcore: 3.0.0-pre.17

注意后面蓝色的core,tools,uxcore等等这些包我是从MixedRealityFeatureTool里添加的,但是添加上去以后看不到版本了,应该是默认的最新版本。

NUGET:

NuGetForUnity.V3.1.3

Microsoft.MixedReality.QR V0.5.3013

Microsoft.VCRTForwarders.140 V1.0.7

编译并发送至unity:平台工具集:Visual Studio 2022 (v143)

首先就是下载该项目之后,通过unity hub打开,打开是一个空白的场景,这时候不要着急,去找作者写好的默认场景进行学习。

这个默认场景包含在assets——APP——scenes文件夹内,双击打开场景,可以看到作者写好的unity的qrcode二维码识别场景,其中追踪模块在hologramcollection下的trackers中,其中tracker1这个是可以复制的,复制多个后修改location Qr Value就可以追踪多个qrcode了

 

HoloLens2 qrcode read unity
HoloLens2 qrcode read unity

 

而点击tracker1,其中有个元素脚本QR Tracker Controller(script),这个里面有一个Location Qr Value(上面图片里我拼错了)是这个二维码必须包含的字段,比如作者默认是他github的链接,我这个改成了hello,也就是说你扫描的二维码中必须包含hello才会触发程序,并不是说程序没有运行。

编译后使用特定的qrcode二维码就可以实现追踪了!

unity写完之后,发送到hololens就可以实现二维码扫描功能了,参考我的这篇文章:

UNITY开发好的hololens程序如何部署到hololens2上

如果想要知道这个怎么写出来的,可以多看看QR读取的代码原作者大佬写的的这几个文章:

使用 HoloLens 2 在太空中定位二维码 - 构建“穷人的 Vuforia” - DotNetByExample - 下一代 (localjoost.github.io)

Reading QR codes with an MRTK2 Extension Service - DotNetByExample - The Next Generation (localjoost.github.io)

MRTK2 到 MRTK3 - 迁移 QRCode 示例 - DotNetByExample - 下一代 (localjoost.github.io)