所以,
我有想要放置节点的确切位置。如果我使用球体几何形状进行测试,我可以通过告诉节点将球体放置在世界中:
node.simdPosition = 位置
(我提供“位置”作为函数的输入)。
这成功地将对象放置在世界中我想要它去的地方。
我真正想做的是放置一个平面:
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 角度偏移?
最佳答案
我使用了错误的欧拉角... (z)
这使它起作用:
node.eulerAngles = SCNVector3Make(0,cameraEulerAngles.y - Float(0.7), 0)
关于swift - 将 "SCNNode"放置在给定位置并面向 "SCNCamera",并绕 Y 轴偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46698497/