SceneKit - 获取相机的方向
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SceneKit - 获取相机的方向相关的知识,希望对你有一定的参考价值。
我需要找出相机正在查看的方向,例如如果它正在寻找Z+
,Z-
,X+
或X-
。
我尝试过使用eulerAngles
,但是偏航的范围是0
- > 90
- > 0
- > -90
- > 0
这意味着我只能检测相机是否正在朝向Z
或X
,而不是它是朝向正面还是这些轴的负方向。
答案
您可以创建一个SCNNode,将其放在worldFront属性中以获取具有x,y和z方向的向量。
你能做到的另一种方式就是这个项目是如何做到的:
// Credit to https://github.com/farice/ARShooter
func getUserVector() -> (SCNVector3, SCNVector3) { // (direction, position)
if let frame = self.sceneView.session.currentFrame {
let mat = SCNMatrix4(frame.camera.transform) // 4x4 transform matrix describing camera in world space
let dir = SCNVector3(-1 * mat.m31, -1 * mat.m32, -1 * mat.m33) // orientation of camera in world space
let pos = SCNVector3(mat.m41, mat.m42, mat.m43) // location of camera in world space
return (dir, pos)
}
return (SCNVector3(0, 0, -1), SCNVector3(0, 0, -0.2))
}
以上是关于SceneKit - 获取相机的方向的主要内容,如果未能解决你的问题,请参考以下文章