Java 如何在Vuforia中单击部分模型(没有Unity)?
我想通过点击屏幕,在Vuforia中创建调色板的可点击单元格(不带Unity): 我发现多米诺骨牌具有类似的功能,并这样做:Java 如何在Vuforia中单击部分模型(没有Unity)?,java,android,ios,augmented-reality,vuforia,Java,Android,Ios,Augmented Reality,Vuforia,我想通过点击屏幕,在Vuforia中创建调色板的可点击单元格(不带Unity): 我发现多米诺骨牌具有类似的功能,并这样做: 创建一个平板对象和多个单元格对象 通过点击参数x,y(单击坐标)调用isTapOnSetColor函数并获取坐标 坐标是正确的,但获取部分对象的id/名称是错误的 我认为这一行的问题是: boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd); 在多米诺骨牌的例子中,这是: bool
- 创建一个平板对象和多个单元格对象
- 通过点击参数x,y(单击坐标)调用isTapOnSetColor函数并获取坐标
- 坐标是正确的,但获取部分对象的id/名称是错误的
boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);
在多米诺骨牌的例子中,这是:
bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);
但是我不知道该怎么做domino->pickingTransform
并粘贴而不是这行modelViewMatrix(Tool.convertPose2GLMatrix(trackableResult.getPose()).getData())
我的触摸功能的完整代码:
你能帮我点击一下吗?或者是另一种方式(不是Unity?基本上,
domino->pickingTransform
是为每个domino对象绘制的最终矩阵。domino示例的工作方式是,对于每个对象(domino),应用程序检查屏幕触摸的投影点,并查看它是否与对象的矩阵相交。拾取矩阵并不完全相同,因为您希望使拾取矩阵更具响应性,因此可以使拾取矩阵比图形矩阵宽一点
你说你得到了一个错误的id,但问题是-不同的细胞总是相同的id吗?如果不是,这可能是您在矩阵变换中产生的一些小计算错误。我建议进行一次可视化调试——为检测到的id添加一些图形指示,这样您就可以看到应用程序认为您单击了哪个单元格。这将帮助您朝着解决方案的方向前进。“matrix44F”从“modelViewMatrix\u颜色”中获取其值,如我所见。那么,您在那里存储了哪些值?尝试使用此矩阵绘制一个直线矩形,以便查看其尺寸和位置。如果它没有正确地围绕单元格绘制,那么这确实是您的问题。@yakobom这是每个单元格的modelViewMatrixKeyframe