如何将SCNNode移动到ARCamera下方?

时间:2017-09-30 19:17:36

标签: swift augmented-reality arkit

我正在制作一个增强现实应用,用户必须向目标扔球。我使用以下代码将球放在屏幕前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)

目前游戏看起来像这样,但我想把球移到靠近屏幕的底部。

enter image description here

2 个答案:

答案 0 :(得分:1)

我最终找到了解决方案:

替换以下行:

translation.columns.3.z = -0.1

使用:

translation.columns.3.x = -0.1

答案 1 :(得分:0)

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

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

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

enter image description here

矩阵4x4的列如下:

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

希望这会有所帮助。