我想通过点击屏幕在Vuforia (没有Unity)中制作调色板的可点击单元格:
我发现具有类似功能的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)吗?
答案 0 :(得分:3)
基本上,domino->pickingTransform
几乎是为每个多米诺骨牌对象绘制的最终矩阵。多米诺骨牌样本的工作方式是,对于每个对象(多米诺骨牌),应用程序检查屏幕触摸的投影点,并查看它是否与对象的矩阵相交。拾取矩阵并不完全相同,因为您希望使其更具响应性,因此您可以使其比绘图矩阵更宽。
你说你得到了一个错误的id,但问题是 - 对于不同的细胞,它是否总是相同的id?如果没有,这可能是您在矩阵变换中产生的一些小的计算误差。我建议进行可视化调试 - 为检测到的id添加一些图形指示,这样您就可以看到应用程序认为您点击了哪个单元格。这应该有助于您逐步实现解决方案。