如果有关于如何使用AndroID Studio(而不是Unity)创建最简单的AR应用程序的任何教程,那将是很棒的.
我还学会了如何使用Unity创建AR场景,将它们导出到AndroID并在设备上运行,但仍然不了解如何在AndroID Studio中进一步使用导出的项目.
我的目标是拥有一个图像目标和几个3D对象.我希望像ListVIEw一样使用简单的UI来选择要放在目标上的对象.
此外,是否可以使用AndroID构建ListVIEw,并在其项目的click事件中切换3D对象,在Unity中创建的单个场景中使用另一个?我知道我可以使用Unity C#脚本动态加载3D模型,所以我可以通过AndroID触发该脚本中的某些功能吗?
我真的很感激任何建议.
解决方法 摘要:首先,您将图片上传到Vuforia云,以便返回xml和.dat文件.那些存储在Streaming Assets中的. dat文件包含有关标记的二进制格式的所有信息. xml包含有关名称和大小的信息,并链接到C#组件.
Vuforia允许创建运行时标记或云标记,但我们暂时将其遗漏.这个想法保持不变.
当您运行应用程序时,相机硬件CH(不是Unity相机,记住这一点),提供了一个Feed.该Feed在Unity场景中的纹理上渲染,Unity摄像头UC面向该纹理.那些是固定在空间中的,只有纹理的内容用CH提供每个帧的内容来更新.
这是您的应用程序的现实.
同时,Vuforia扫描CH馈送并执行模式识别https://en.wikipedia.org/wiki/Pattern_recognition,试图找到与您提供的dat文件匹配的模式.
当找到模式时,它执行第二次运行以定义该模式相对于CH的距离和旋转.这是可能的,因为xml文件包含真实标记的尺寸.如果xml表示50×50并且你的标记是25×25,它将是预期的两倍,因为系统理解标记比实际距离更远.
当识别出标记时,Vuforia会调用DefaultTrackableEventHandler上的状态监听器(检查模型父级上的脚本),它实现了这个方法:
public voID OnTrackableStateChanged( TrackableBehavIoUr.Status prevIoUsstatus,TrackableBehavIoUr.Status newStatus){ if (newStatus == TrackableBehavIoUr.Status.DETECTED || newStatus == TrackableBehavIoUr.Status.TRACKED || newStatus == TrackableBehavIoUr.Status.EXTENDED_TRACKED) { OnTrackingFound(); } else { OnTrackingLost(); }}
基本上,如果Vuforia检测到更改,它会调用该方法.然后你可以传播事件进一步使OnTrackingFound / Lost公共事件进入任何可以注册的事件.或者创建一个实现ITrackableEventHandler的新脚本.这只是关于模型被发现或丢失的倾听.在示例中,找到时,它显示模型,反之亦然.这是最可能和最基本的情况,但任何事情都可以触发.
计算结果表示变换(位置,旋转).该transform将传递给场景中的第二台Unity摄像机.坐标用(0,0)定义为标记的位置.它很可能针对您放置的3D模型.请注意,您可以将模型放置在场景中的任何位置,它只是偏移.无法控制Vuforia相机,如果您尝试将值传递给transform,它们会被Vuforia覆盖.你并不打算玩那些价值观.另一方面,您可以将其设置为打开和关闭,影响某些渲染等.
第一个UC具有较低的深度,因此它首先渲染真实场景,第二个渲染在顶部,它通过3D模型增强了现实.使用一组图层蒙版,第二个相机会忽略场景的其余部分,因此仅考虑模型.
你真的不想玩背景信息,但你肯定希望与模型交互,这样做,就像任何普通场景一样.抓住Vuforia相机的相机组件并从前向方向进行光线投射.检查你的命中并采取行动.
总结以上是内存溢出为你收集整理的Vuforia Android SDK解释样本?全部内容,希望文章能够帮你解决Vuforia Android SDK解释样本?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)