如何将 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
作为一种选择,您可以对 X、Y 和 Z 使用以下方法同时:
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)
希望对您有所帮助。
我正在制作一个增强现实应用程序,用户必须将球扔向目标。我使用以下代码将球定位在屏幕前 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
作为一种选择,您可以对 X、Y 和 Z 使用以下方法同时:
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)
希望对您有所帮助。