无法转换类型' SCNMatrix4'的值预期参数类型' matrix_float4x4' (又名' simd_float4x4')

时间:2017-08-08 11:41:44

标签: swift scenekit ios11 xcode9-beta arkit

当我尝试设置虚拟对象的simdPosition时,我在使用iOS 11 ARKit(Scenekit - Xcode 9 beta)时出现此错误。我需要知道是否可以在swift中将 SCNMatrix4 转换为 matrix_float4x4 。如果是这样,如何转换它。

3 个答案:

答案 0 :(得分:14)

使用iOS SDK 11,您可以使用初始值设定项在SCNMatrix4simd_float4x4之间进行转换。

import SceneKit

var mat4 = SCNMatrix4()

let f4x4 = simd_float4x4(mat4)

mat4 = SCNMatrix4(f4x4)

答案 1 :(得分:1)

您可以使用SCNMatrix4ToMat4

let matrix = SCNMatrix4()               // matrix is SCNMatrix4
let float4x4 = SCNMatrix4ToMat4(matrix) // float4x4 is matrix_float4x4

如果您想将SCNMatrix4转换为matrix_float4x4,请使用SCNMatrix4FromMat4

let matrix1 = SCNMatrix4FromMat4(float4x4) // matrix1 is SCNMatrix4

答案 2 :(得分:0)

Objective-C具有相同的方法:

[self.sceneView.session setWorldOrigin:SCNMatrix4ToMat4(node.pivot)];