【发布时间】:2019-03-11 19:25:13
【问题描述】:
目前正在玩 arkit,当我尝试在 arkit 节点内缩放对象时遇到一个大问题
extension RecordPlaceViewController: ARSCNViewDelegate {
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
if anchor.name == "test" {
let sceneModel = SCNScene(named: "assetsmodels.scnassets/phone2.scn")
let nodeModel = sceneModel!.rootNode.childNode(withName: "Plane", recursively: true)
nodeModel?.geometry?.firstMaterial?.diffuse.contents = UIImage(named: "uv2")
nodeModel?.scale = SCNVector3(0.1,0.1,0.1)
nodeModel?.eulerAngles.x = -90
return nodeModel
}
return nil
}
}
为什么这两个功能在这里不起作用?
nodeModel?.scale = SCNVector3(0.1,0.1,0.1)
nodeModel?.eulerAngles.x = -90
如果我用scnkit 添加那些只有它可以工作,但如果我用arkit 节点...缩放和位置什么都不做。
【问题讨论】:
-
您可能会从 let nodeModel = ... 得到 nil。它是从“uv2”图像应用你的纹理吗?此外,eulerAngles 以弧度为单位,因此您不能使用度数 - 您需要进行转换,因此它是 -90.0 * .pi / 180.0。跨度>
-
是的,我后来看到了弧度。但这不是重点。我把答案放在下一个