我想为android开发一个增强现实应用程序,它能够使用标记来生成3D对象,这些3D对象在触摸时使用移动设备的触摸输入进行交互。
我浏览过Vuforia,Junaio或Layar Player等可用的SDK,发现他们都支持:
然而,我正在寻找的是:
我很确定这是可能的,因为有虚拟视频叠加,点击/点击会启动视频(类似于交互式虚拟元素)。
Q值。有人可以建议一个最适合我正在寻找的功能的库/工具包吗?
或
Q值。在我使用上述工具包进行搜索时,我是否有一些东西显然已经错过了已经支持我想要的功能?
答案 0 :(得分:1)
根据您的上一个描述,Vuforia支持您所需要的内容,并且还有纯Android(无Unity)的示例。
您需要查看Dominos示例,其中显示了如何在屏幕上拖动OpenGL多米诺骨牌对象。 在这里查看快速说明: https://developer.vuforia.com/forum/faq/android-how-do-i-project-screen-touch-target
如果您在尝试自己实施时遇到一些问题,可以在Vuforia论坛上搜索其他人遇到的常见问题的一些答案。但基本上,它在样本中效果很好。
答案 1 :(得分:1)
嗯,这适用于Unity 5.x
首先,浏览Vuforia的文档,了解有关图像目标和 AR相机的更多信息。
将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);
}
请根据需要修改代码。这是一个非常基本的例子。