java定义一个盒子_用 SceneKit 和 ARKit 创建一个盒子

您应该点击位置并使用世界坐标正确放置立方体。我不确定(0,0,0)是否是 ARKit 的正常位置。您可以尝试如下操作:

将其放在您的 viewDidLoad 中:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTapFrom))

tapGestureRecognizer.numberOfTapsRequired = 1

self.sceneView.addGestureRecognizer(tapGestureRecognizer)

然后添加此方法:

@objc func handleTapFrom(recognizer: UITapGestureRecognizer) {

let tapPoint = recognizer.location(in: self.sceneView)

let result = self.sceneView.hitTest(tapPoint, types: ARHitTestResult.ResultType.existingPlaneUsingExtent)

if result.count == 0 {

return

}

let hitResult = result.first

let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)

let node = SCNNode(geometry: box)

node.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.static, shape: nil)

node.position = SCNVector3Make(hitResult.worldTransform.columns.3.x, hitResult.worldTransform.columns.3.y, hitResult.worldTransform.columns.3.z)

sceneView.scene.rootNode.addChildNode(node)

}

然后,当您点击检测到的平面时,它将在您点击的平面上添加一个框。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值