scnnode

    2热度

    2回答

    下面的代码将SCNPlane放置到所触摸的点上,但是该平面的方向(旋转)为手机在应用程序启动时的位置。理想情况下,我希望将节点定位到实体墙或摄像机的当前方向。这是如何与ARKit完成的? override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { guard let touch = touches

    1热度

    1回答

    我建立一个ARKit + SceneKit应用程序,它需要在现实世界显示模式。每次用户选择一个按钮时,模型都会改变。 我试图加载APON按下按钮一个新的模型转换为节点,然后将其添加到场景的根节点,但这会导致直到它被添加到场景相机冻结几秒钟。 然后我读,这可能是更好的负载在启动(viewDidLoad或东西)的所有节点,调用场景的prepare方法,然后将节点添加到场景,但这会导致应用程序冻结了几次

    2热度

    4回答

    我在SCNode碰撞检测中遇到了一些麻烦。我需要检测具有SCNNode的场景中的哪个对象被触摸,我已经实现了这段代码,但是当我触摸对象时看起来崩溃,但是当我触摸sceneView的其余部分时工作正常。 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let touch = touch

    2热度

    2回答

    我正在创建土星模型,并且在创建环时遇到问题。我发现这个资产 但是当我尝试将其设置为弥漫性,其突出这样 如何控制的方式在几何纹理的项目?

    0热度

    1回答

    我把SCNNode放到了一个场景中。我想提供适当的空间旋转,因为这个节点是一个金字塔。我想Z axis指向V2点,X axis指向V1点(这些V2和V1点是动态计算的,当然在这种情况下,轴之间的角度将是90度,因为我正确计算它们)。 问题:我不能点X轴,因为SCNLookAtConstraint(target: nodeWithV2)点只有Z轴,以及我看到的是,Z轴是确定的,但X轴始终是随机的,这

    2热度

    1回答

    ©我试图移动我放在表面上的SCNNode对象。 İt移动但规模变化,它变得更小,当我第一次开始移动。 这就是我所做的; @IBAction func dragBanana(_ sender: UIPanGestureRecognizer) { guard let _ = self.sceneView.session.currentFrame else {return} if(

    0热度

    1回答

    所以, 我有我想要放置节点的确切位置。如果我测试的东西具有球形几何结构我可以通过告诉节点放置在世界球体: node.simdPosition =位置 (I提供了“位置”作为输入到该函数)。 成功地将对象置于世界上我想要的位置。 我真正想要做的是把一个平面: let plane = SCNPlane(width: 0.2, height: 0.3) plane.cornerRadius

    1热度

    1回答

    我有一个简单的ARKit应用程序。当用户触摸屏幕 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { guard let touch = touches.first else { return } let result = sceneView.hitTest(touch.loca

    0热度

    2回答

    我试图把球体放在盒子的顶部,但位置很奇怪:球是半框内隐藏的。我试图改变盒子和球体的支点,但它没有帮助。下面的代码: let cubeGeometry = SCNBox(width: 10, height: 10, length: 10, chamferRadius: 0) let cubeNode = SCNNode(geometry: cubeGeometry) /

    7热度

    2回答

    我使用ARKit来显示3D对象。我设法将节点放置在用户面前的真实世界中(也就是相机)。但是,当我放下它们时,我无法让它们面对相机。 let tap_point=CGPoint(x: x, y: y) let results=arscn_view.hitTest(tap_point, types: .estimatedHorizontalPlane) guard results.count>0