将“SCNNode”放置在给定位置并面向“SCNCamera”,并在Y轴周围偏移

时间:2017-10-11 22:24:50

标签: swift scenekit augmented-reality arkit scnnode

所以,

我有我想要放置节点的确切位置。如果我用球体几何体测试东西,我可以通过告诉节点来将球体放在世界中:

node.simdPosition = position

(我提供“位置”作为函数的输入)。

成功地将对象放在世界的正确位置。

我真正想做的是放置一架飞机:

let plane = SCNPlane(width: 0.2, height: 0.3)
plane.cornerRadius = plane.width / 10
plane.firstMaterial?.diffuse.contents = UIColor.red
plane.firstMaterial?.specular.contents = UIColor.white
let node = SCNNode(geometry: plane)

然后告诉它被放置在“位置”:

node.simdPosition = position

这一切也适用于飞机。我遇到的问题是角度:

我想告诉飞机的节点放置在相机的给定“角度”(Y左右)偏移处。我尝试了这个,但它不起作用:

node.rotation = SCNVector4Make(0, 1, 0, currentFrame.camera.eulerAngles.z - angle)

那么,问题是,如何将节点放置在某个位置,并且当它放置在世界中时,也会有一个偏离相机垂线的Y角度?

1 个答案:

答案 0 :(得分:0)

我使用错误的欧拉角...(z)

这使它起作用:

node.eulerAngles = SCNVector3Make(0,cameraEulerAngles.y - Float(0.7),0)