0

我想为 android 开发一个增强现实应用程序,它能够使用标记来生成 3D 对象,并且这些 3D 对象在使用移动设备的触摸输入进行触摸时是交互式的。

我浏览了Vuforia、Junaio 或 Layar Player等可用的 SDK ,发现它们都支持:

  • 使用 3D 虚拟图像叠加进行标记检测
  • 使它们不可见时激活的虚拟按钮。(武佛利亚)
  • 交互式视频播放。

但是,我正在寻找的是:

  • AR 中的虚拟对象可以使用移动设备的触摸进行交互。

我很确定这是可能的,因为有虚拟视频叠加层,在单击/点击时会启动视频(类似于交互式虚拟元素)。

问:有人能推荐一个最适合我正在寻找的这个功能的库/工具包吗?

或者

问:在使用上述已经支持我想要的功能的工具包进行搜索时,我是否明显遗漏了什么?

4

2 回答 2

1

好吧,这是针对 Unity 5.x 的

首先,通过 Vuforia 的文档了解更多关于Image TargetsAR Camera的信息。

将您的 3D 模型导入场景,以便所有交互式对象都是图像目标的子对象。

阅读手机上的触摸(我的项目使用了android)

if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)

将触摸点转换为从屏幕到 3D 世界的射线

Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);

在场景中创建一个平面(让光线命中)

Plane plane = new Plane(Vector3.up, Vector3.zero);

如果光线击中平面,则获取 x,y,z 位置。pos的值将具有世界位置

if (plane.Raycast(ray, out distance)){
    Vector3 pos = ray.GetPoint(distance); 
}

请根据您的需要修改代码。这是一个非常基本的例子。

于 2016-08-09T08:49:49.103 回答
1

根据您最后的描述,您需要的 Vuforia 支持,并且还有纯 Android(无 Unity)的示例。

您需要查看 Dominos 示例,其中展示了如何在屏幕上拖动 OpenGL 多米诺对象。在这里查看快速描述: https ://developer.vuforia.com/forum/faq/android-how-do-i-project-screen-touch-target

如果您在尝试自己实现它时遇到一些问题,您可以在 Vuforia 论坛上搜索其他人遇到的常见问题的一些答案。但基本上,它在他们的样本中运行良好。

于 2015-10-11T05:25:55.727 回答