如何定位 SCNPlane 上的水龙头?

How to locate a tap on a SCNPlane?

我在 SceneKit 中有一个 SCNPlane,它是旋转的,所以它在 x 和 z 方向上延伸,我想要一个 UITapGestureRecognizer 可以得到 x 和 z 坐标在那个平面上点击一下,这样我就可以在那里渲染一些东西。

我一直在尝试使用 this Whosebug question 来解决这个问题,但我似乎无法让它工作。

您可能想要做的是 hit test。它与取消投影点基本相同,只是您会获得有关命中线穿过位置的更多信息并且它超出了第一个结果。

该函数将为您提供一组结果,您可能只需要第一个。那将是 hit test result.

从那个 SCNHitTestResult 中,您可以获取 UV 坐标,或者 localCoordinates 这可能是您正在寻找的。