gpt4 book ai didi

swift - SCNBox 使正面旋转到 ARKit 中的相机

转载 作者:可可西里 更新时间:2023-11-01 02:00:33 26 4
gpt4 key购买 nike

我有一个简单的 ARKit 应用程序。当用户触摸屏幕时

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else { return }
let result = sceneView.hitTest(touch.location(in: sceneView), types: [ARHitTestResult.ResultType.featurePoint])
guard let hitResult = result.last else { return }
let hitTrasform = SCNMatrix4(hitResult.worldTransform)
let hitVector = SCNVector3Make(hitTrasform.m41, hitTrasform.m42, hitTrasform.m43)

createBox(position: hitVector)
}

我加了一个立方体

func createBox(position: SCNVector3) {
let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 1)
box.firstMaterial?.diffuse.contents = UIColor.black

let sides = [
UIColor.red, // Front
UIColor.black, // Right
UIColor.black, // Back
UIColor.black, // Left
UIColor.black, // Top
UIColor.black // Bottom
]

let materials = sides.map { (side) -> SCNMaterial in
let material = SCNMaterial()
material.diffuse.contents = side
material.locksAmbientWithDiffuse = true
return material
}

box.materials = materials

let boxNode = SCNNode(geometry: box)
boxNode.position = position
sceneView.scene.rootNode.addChildNode(boxNode)
}

当我第一次添加它时,我看到了正面和右侧的一点点。如果我绕过另一边的立方体并添加另一个立方体,我会看到立方体的背面。那么,我能否做到无论用户如何走动,都只能看到正面。

谢谢。

最佳答案

您可以使用 SCNBillboardConstraint使给定节点面向相机。只需在将其添加到 rootNode 之前添加 boxNode.constraints = [SCNBillboardConstraint()]

关于swift - SCNBox 使正面旋转到 ARKit 中的相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46745115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com