gpt4 book ai didi

ios - 是否有可能专注于选定的 SCNNode

转载 作者:行者123 更新时间:2023-11-29 13:51:54 33 4
gpt4 key购买 nike

我有以下情况。一个 SCNView,其中显示了一座桥的 .scn。在屏幕的左侧,您可以看到桥梁的视觉表示。

我想做以下事情。

  • 在“模型浏览器”左侧选择一项
  • 缩放到所选项目并聚焦

Selected item

在提供的屏幕截图上。你可以看到我在 SceneView 中选择了黄色的 Kist现在我想缩放并关注所选的 SCNNode

我已经尝试使用 rayTestWithSegment 找到要缩放的选定位置。但是 rayTestWithSegment 的结果始终是 []

我也尝试过使用 SCNLookAtConstraint 但这并不能解决问题。

    var constraint: SCNLookAtConstraint!

func handle(gesture: UIGestureRecognizer) {
guard let result = hitTestResult(for: gesture), let world = sceneView?.scene?.physicsWorld else { return }
let nodePosition = result.node.position
let results = world.rayTestWithSegment(from: SCNVector3(0, 1, 0), to: nodePosition, options: nil)
print(results)
constraint = SCNLookAtConstraint(target: result.node)
sceneView?.pointOfView?.constraints = [constraint]
}

func hitTestResult(for gesture: UIGestureRecognizer) -> SCNHitTestResult? {
let location = gesture.location(in: sceneView)
guard let hit = sceneView?.hitTest(location, options: nil), hit.count > 0, let result = hit.first else {
return nil
}
return result
}

我正在使用 rayTestWithSegment,因为我选择的 SCNNode 有可能不完全可见。例如 SCNNode 在此透视图中位于另一个节点之后。

在此先感谢,我希望有人可以帮助/解释我做错了什么..

最佳答案

你可以看看-[SCNCameraController frameNodes:]应该做到这一点的 API。

关于ios - 是否有可能专注于选定的 SCNNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59283918/

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