swift - 将 "SCNNode"放置在给定位置并面向 "SCNCamera",并绕 Y 轴偏移

标签 swift scenekit augmented-reality arkit scnnode

所以,

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

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/

相关文章:

ios - 注册无效 - 服务器返回 404 错误代码

swift - 如何仅在 SceneKit 中的球体的一部分应用菲涅耳效果?

ios - 如何在TextView iOS中给文本渐变?

swift - 字符串传输

ios - 设置 SCNTechnique 会停止 SCNSceneRendererDelegate

swift - 如何在 RealityKit 中仅围绕一个轴旋转对象?

javascript - 增强现实库支持 React Native?

android - 设备摄像头方向,不包括设备横向/纵向方向

ios - 通过 swift 2 追加数组

iOS 10 : SCNLight of type Omni ignoring attenuation values?