Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 动画角色命中测试–;获取正确的世界坐标_Swift_Scenekit_Augmented Reality_Arkit_Hittest - Fatal编程技术网

Swift 动画角色命中测试–;获取正确的世界坐标

Swift 动画角色命中测试–;获取正确的世界坐标,swift,scenekit,augmented-reality,arkit,hittest,Swift,Scenekit,Augmented Reality,Arkit,Hittest,在我的ARKit应用程序中,我有一个动画角色(作为T骨模型存储在SCN文件中)。动画取自多个DAE文件,并使用SCNAnimationPlayer应用于模型,如下所示: let myAnimation = Animations.configMyAnimationFunction() myAnimation.stop() enemyNode.childNodes[2].addAnimationPlayer(myAnimation, forKey: "myKey") enemyNode.childN

在我的ARKit应用程序中,我有一个动画角色(作为T骨模型存储在SCN文件中)。动画取自多个DAE文件,并使用
SCNAnimationPlayer
应用于模型,如下所示:

let myAnimation = Animations.configMyAnimationFunction()
myAnimation.stop()
enemyNode.childNodes[2].addAnimationPlayer(myAnimation, forKey: "myKey")
enemyNode.childNodes[2].animationPlayer(forKey: "myKey")?.play()
动画播放得非常完美

现在我对动画几何体进行“命中测试”,如下所示:

let currentTouchPoint = touches.first?.location(in: self.sceneView)
let hitTest = sceneView.hitTest(currentTouchPoint!, options: [SCNHitTestOption.categoryBitMask: NodeCategory.catEnemy.rawValue, SCNHitTestOption.searchMode: SCNHitTestSearchMode.any.rawValue as NSNumber])
let hitObject = hitTest.first?.node // let that stores the hitTest

if hitObject != nil {

      // code...

      let hitLocation = hitTest.first?.worldCoordinates

      // code...
}
我想使用“世界坐标”的结果。但是,结果似乎总是包含来自静态T形骨骼模型的坐标,而不是动画运行时它所在的位置

假设动画模型正在拍手(作为人形角色)或触摸地面。当我触摸模型手时,hittest会工作并返回结果,但最终在错误的坐标处

苹果在
世界坐标
上的文档是这样的:“几何体和搜索光线之间的交点,在场景的世界坐标系中。”我也尝试了
局部坐标
,但成功率更低


在模型设置动画期间,如何确定几何体上当前触摸位置的真实坐标?

可能的重复坐标不相同。我不是通过节点的表示来寻找节点的位置-我是在通过hittest找到的动画几何体的ISO曲面上寻找精确的交点。几何图形是一种类似人类的角色。