无法将类型 'SCNMatrix4' 的值转换为预期的参数类型 'matrix_float4x4'(又名 'simd_float4x4')
Cannot convert value of type 'SCNMatrix4' to expected argument type 'matrix_float4x4' (aka 'simd_float4x4')
我在使用 iOS 11 ARKit(Scenekit - Xcode 9 beta) 尝试设置虚拟对象的 simdPosition 时遇到此错误。我需要知道是否可以在 swift 中将 SCNMatrix4 转换为 matrix_float4x4。如果可以怎么转换。
您可以使用 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
使用 iOS SDK 11,您可以使用初始化程序在 SCNMatrix4
和 simd_float4x4
之间进行转换。
import SceneKit
var mat4 = SCNMatrix4()
let f4x4 = simd_float4x4(mat4)
mat4 = SCNMatrix4(f4x4)
Objective-C方法相同:
[self.sceneView.session setWorldOrigin:SCNMatrix4ToMat4(node.pivot)];
我在使用 iOS 11 ARKit(Scenekit - Xcode 9 beta) 尝试设置虚拟对象的 simdPosition 时遇到此错误。我需要知道是否可以在 swift 中将 SCNMatrix4 转换为 matrix_float4x4。如果可以怎么转换。
您可以使用 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
使用 iOS SDK 11,您可以使用初始化程序在 SCNMatrix4
和 simd_float4x4
之间进行转换。
import SceneKit
var mat4 = SCNMatrix4()
let f4x4 = simd_float4x4(mat4)
mat4 = SCNMatrix4(f4x4)
Objective-C方法相同:
[self.sceneView.session setWorldOrigin:SCNMatrix4ToMat4(node.pivot)];