如何在Vuforia(没有Unity)中点击部分模型?

时间:2017-01-31 22:44:48

标签: java android ios augmented-reality vuforia

我想通过点击屏幕在Vuforia (没有Unity)中制作调色板的可点击单元格: enter image description here

我发现具有类似功能的Dominoes示例并执行此操作:

  • 创建一个平板对象并乘以单元格对象

  • 调用isTapOnSetColor函数,点击参数x,y(点击坐标)并获取坐标,

  • 坐标是正确的,但是获取部分对象的id / name是错误的

我觉得这行有问题:

boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);

在Dominoes示例中,这是:

bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);

但我不知道做什么domino->pickingTransform并粘贴而不是此行modelViewMatrix(Tool.convertPose2GLMatrix(trackableResult.getPose())。getData())

我的触控功能的完整代码:http://pastebin.com/My4CkxHa

你能帮我点击一下,或者可能是另一种方式(不是Unity)吗?

1 个答案:

答案 0 :(得分:3)

基本上,domino->pickingTransform几乎是为每个多米诺骨牌对象绘制的最终矩阵。多米诺骨牌样本的工作方式是,对于每个对象(多米诺骨牌),应用程序检查屏幕触摸的投影点,并查看它是否与对象的矩阵相交。拾取矩阵并不完全相同,因为您希望使其更具响应性,因此您可以使其比绘图矩阵更宽。

你说你得到了一个错误的id,但问题是 - 对于不同的细胞,它是否总是相同的id?如果没有,这可能是您在矩阵变换中产生的一些小的计算误差。我建议进行可视化调试 - 为检测到的id添加一些图形指示,这样您就可以看到应用程序认为您点击了哪个单元格。这应该有助于您逐步实现解决方案。