【发布时间】:2018-07-13 12:18:59
【问题描述】:
我正在扩展我非常有限的 ARCore 知识。
我的问题与this question 相似(但不同)
我想弄清楚我的设备 摄像头节点是否与我的其他节点相交/重叠,但到目前为止我还没有运气
我正在尝试这样的事情(相机是另一个节点):
scene.setOnUpdateListener(frameTime -> {
Node x = scene.overlapTest(scene.getCamera());
if (x != null) {
Log.i(TAG, "setUpArComponents: CAMERA HIT DETECTED at: " + x.getName());
logNodeStatus(x);
}
});
首先,这有意义吗?
我可以使用以下方法检测场景中的所有节点冲突:
for (Node node : nodes) {
...
ArrayList<Node> results = scene.overlapTestAll(node);
...
}
假设相机节点没有可渲染对象(因此没有默认碰撞形状),我尝试设置自己的碰撞形状,但这实际上捕获了我尝试执行的所有点击事件,所以我想我一定做错了。
我正在考虑修复摄像机前停用的节点之类的事情。
我可能对 ARCore 的要求太多了,但有没有人找到一种方法来检测“用户”(即相机节点)和另一个节点之间的冲突?还是应该通过室内定位来进行这种“碰撞检测”?
提前致谢:)
更新:它真的很hacky并且性能很重,但是您实际上可以从节点内的onUpdate 内比较相机和节点的世界空间位置,您可能需要管理一些容差和其他事情来平滑交互.
【问题讨论】:
标签: android collision-detection arcore