Ios 如何将SCNNode固定到ARKit';你的观点是什么?
我试图做一些简单的事情,但我遇到了一个打破ARKit体验的问题 我想将一个3d模型(SCNNode)固定在手机屏幕上的一个点上。我能做到,但目前这种经历似乎已经破裂。当我将节点添加到场景中时,节点在冻结到位之前大约有一秒钟左右的时间移动。这种初始移动非常糟糕,因为节点可能会冻结在摄影机的视图之外(因此您无法在屏幕上看到它) 我正在使用的代码:Ios 如何将SCNNode固定到ARKit';你的观点是什么?,ios,swift,scenekit,arkit,Ios,Swift,Scenekit,Arkit,我试图做一些简单的事情,但我遇到了一个打破ARKit体验的问题 我想将一个3d模型(SCNNode)固定在手机屏幕上的一个点上。我能做到,但目前这种经历似乎已经破裂。当我将节点添加到场景中时,节点在冻结到位之前大约有一秒钟左右的时间移动。这种初始移动非常糟糕,因为节点可能会冻结在摄影机的视图之外(因此您无法在屏幕上看到它) 我正在使用的代码: let scene = SCNScene(named: "resources.scnassets/model.scn")! let node = scen
let scene = SCNScene(named: "resources.scnassets/model.scn")!
let node = scene.rootNode.childNode(withName: "model", recursively: true)!
// this puts the node in front & slightly below the camera
let orientation = SCNVector3(x: 0, y: -0.4, z: -1)
node.position = orientation
let physicsBody = SCNPhysicsBody(
type: .static,
shape: SCNPhysicsShape(geometry: SCNSphere(radius: 0.1))
)
node.physicsBody = physicsBody
sceneView.pointOfView?.addChildNode(node)
此代码很简单,它将节点添加到场景的摄影机节点前面。但我遇到了这样一个问题:当节点被添加到场景中时,它有一秒钟的时间在屏幕上移动(当我移动手机时),然后它就会冻结。我需要做的是将节点显示在屏幕上的固定位置(固定到相机的视角)
我不想将节点锚定到现实世界中的某个位置。我希望节点的位置取决于摄影机的视点
连接节点的正确方式是什么,使其保持在手机屏幕上的同一位置 您应该使用而不是.static
对要直接控制但其运动会操纵其他元素的场景元素使用运动学体。例如,要允许用户用手指推送对象,可以创建运动学实体,并将其附着到一个不可见的节点上,然后移动该节点以跟踪触摸事件