触摸 Scenekit 中的线 iOS
Touch the line in Scenekit iOS
我在场景工具包中创建了线条。我不能触摸线。它没有检测到。
但是盒子,胶囊正在检测。我怎样才能触摸到这条线?
我使用 SCNGeometryElement 创建了线
谢谢
无法对由线构成的几何体进行 hitTest。您可以做的可能是在场景中的同一位置放置一个具有相同拓扑结构的普通对象(例如,将其设为子节点)。然后将其隐藏,并在进行 hitTest 时传递选项 SCNHitTestIgnoreHiddenNodesKey=NO。当隐藏节点被触摸时,select对应的版本由线构成。
你的线大概是一磅宽?也许一个像素,甚至?你的手指大约 44 points wide。用户不会可靠地瞄准这么小的东西。 (如果他们完全可以瞄准它——就命中测试而言,我不确定线条是否具有宽度。)
您正在使用 hit testing to map touches to scene elements, right? You can set an option to use bounding-box hit testing instead of geometry hit testing, and maybe even set the bounding box 获得非零音量,以便命中测试可以命中它。
当然,如果这样做,您还需要调整节点的方向,使其边界框与直线一致。 (否则,对角线的轴对齐边界框非常大,包括很多 space 不在对角线附近。 讨论了这方面的技术......虽然在那一点上,你可能只是做那个问题中的其他事情,这样你的线就有可见的音量,而不仅仅是命中测试的音量。
我在场景工具包中创建了线条。我不能触摸线。它没有检测到。 但是盒子,胶囊正在检测。我怎样才能触摸到这条线?
我使用 SCNGeometryElement 创建了线
谢谢
无法对由线构成的几何体进行 hitTest。您可以做的可能是在场景中的同一位置放置一个具有相同拓扑结构的普通对象(例如,将其设为子节点)。然后将其隐藏,并在进行 hitTest 时传递选项 SCNHitTestIgnoreHiddenNodesKey=NO。当隐藏节点被触摸时,select对应的版本由线构成。
你的线大概是一磅宽?也许一个像素,甚至?你的手指大约 44 points wide。用户不会可靠地瞄准这么小的东西。 (如果他们完全可以瞄准它——就命中测试而言,我不确定线条是否具有宽度。)
您正在使用 hit testing to map touches to scene elements, right? You can set an option to use bounding-box hit testing instead of geometry hit testing, and maybe even set the bounding box 获得非零音量,以便命中测试可以命中它。
当然,如果这样做,您还需要调整节点的方向,使其边界框与直线一致。 (否则,对角线的轴对齐边界框非常大,包括很多 space 不在对角线附近。