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

问题描述 投票:0回答:1

所以,

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

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角度?

swift scenekit augmented-reality arkit scnnode
1个回答
0
投票

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

这使它工作:

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

© www.soinside.com 2019 - 2024. All rights reserved.