gpt4 book ai didi

ios - 使用点击手势识别器时未检测到几何元素,但它检测到 body-splitcontainers-split123

转载 作者:行者123 更新时间:2023-11-29 05:48:33 25 4
gpt4 key购买 nike

我有一个场景套件文件,其中有我的 body 模型。我在我的主场景包文件中使用它。当我点击手、脚、 ARM 、头等 body 部位时,我想打开不同的场景。主体是具有多个几何元素的单个节点。当我点击时,它可以正确检测分配给几何体的 Material ,但它不显示它是哪个几何体元素,它显示像 body-splitcontainer-split4 这样的名称。因此我需要获取几何元素。我正在制作一个 3D View 应用程序。

我通过单独打印节点本身、其名称和属性来检查它。它也不检测几何元素。当我使用 GeometryIndex 属性时,它返回 0。

@objc func handleTap(_gestureRecognize: UIGestureRecognizer) { //检索 SCNView

    let scnView = self.view as! SCNView

// check what nodes are tapped

let p = gestureRecognize.location(in: scnView)
print(p)
let hitResults = scnView.hitTest(p, options: nil)

// check that we clicked on at least one object

if hitResults.count > 0 {

// retrieved the first clicked object

let result = hitResults[0]

// get the tapped node

let index = result.node

// Print the node name and geometry name

let material = result.node.geometry?.firstMaterial
print("Index is \(index.name)")
print("Material is \(material?.name)")

// highlight it

SCNTransaction.begin()
SCNTransaction.animationDuration = 0.5

// on completion - unhighlight

SCNTransaction.completionBlock = {
SCNTransaction.begin()
SCNTransaction.animationDuration = 0.5

material!.emission.contents = UIColor.black

SCNTransaction.commit()
}

material!.emission.contents = UIColor.yellow

SCNTransaction.commit()
}
}

我希望它能显示实际的几何元素名称,例如:body-Element0(用于头部)body-Element1(颈部)但它向我展示了主体分割容器分割1主体分割容器分割2主体分割容器分割3当我点击头部的不同部分时,所有的头部。尽管它显示了正确的 Material 名称。对于 ARM 来说主体 split 容器 split 22等等

最佳答案

我让它工作了。在刺激器中,我的 Material 被选择,但它没有获取我的几何元素。但是当我在实际设备中测试它时,代码变得更有意义,它正在检测我的几何元素,但返回编码的第一个 Material 。因此,我制作了一个字典,并使用该字典将几何元素与其 Material 名称相关联,作为 Geometry.firstmaterial 的解决方法

关于ios - 使用点击手势识别器时未检测到几何元素,但它检测到 body-splitcontainers-split123,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904108/

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