如何将 SCNNode 移动到 ARCamera 正下方?

How to move an SCNNode to just below ARCamera?

我正在制作一个增强现实应用程序,用户必须将球扔向目标。我使用以下代码将球定位在屏幕前 10 厘米处:

var translation = matrix_identity_float4x4
translation.columns.3.z = -0.1
print(translation.debugDescription)
print(frame.camera.transform)
projectile.simdTransform = matrix_multiply(frame.camera.transform, translation)

目前游戏是这样的,但是我想把球移到屏幕底部附近。

我最终找到了解决方案:

替换以下行:

translation.columns.3.z = -0.1

与:

translation.columns.3.x = -0.1

作为一种选择,您可以对 XYZ 使用以下方法同时:

translation.columns.3 = simd_float4(-0.1, 0, 0, 1)

columns.3中的最后一个元素是齐次坐标,等于1.

矩阵 4x4 的列如下所示:

public var columns: (simd_float4, simd_float4, simd_float4, simd_float4)

希望对您有所帮助。