【发布时间】:2021-09-02 06:53:22
【问题描述】:
我正在尝试进行除法计算以放大或缩小我的 AR 项目的节点。但是我遇到了Cannot convert value of type '[String : Any]?' to expected argument type 'Float'的编译错误。
我知道会发生错误,因为 number 是一个可选参数,我尝试了几种不同的方法,但无法将它解包为 float 类型。这个要怎么拆?
guard let touchPositionInFrontOfCamera = getPosition(ofPoint: indexTip2, atDistanceFromCamera: self.distance, inView: self.sceneView) else { return }
for node in sceneView.scene.rootNode.childNodes{
let distance = SCNVector3(
touchPositionInFrontOfCamera.x - node.position.x,
touchPositionInFrontOfCamera.y - node.position.y,
touchPositionInFrontOfCamera.z - node.position.z
)
let radius: Float = sqrtf(distance.x * distance.x + distance.y * distance.y + distance.z * distance.z)
print(node.geometry?.dictionaryWithValues(forKeys: ["radius"]), radius)
let number = node.geometry?.dictionaryWithValues(forKeys: ["radius"])
print(radius / number)
}
【问题讨论】:
-
print(node.geometry?.dictionaryWithValues(forKeys: ["radius"]), radius) 打印什么? @tonywang
-
输出示例
Optional(["radius": 0.382940411567688]) -
@Alexander 因为我需要实时创建一个球体,除非我使用这种方法检查它,否则我不知道它的半径
-
这不是你想要的方法。看我的回答。