【发布时间】:2014-12-14 04:31:20
【问题描述】:
我最近开始在 iOS 8 中将 scenekit 用于 scenekit。我在检测用户是否点击或按下了对象时遇到了困难。有什么办法吗?
【问题讨论】:
我最近开始在 iOS 8 中将 scenekit 用于 scenekit。我在检测用户是否点击或按下了对象时遇到了困难。有什么办法吗?
【问题讨论】:
请参阅hitTest 方法的文档。从您处理触摸事件的任何地方调用它,以获取 2D 屏幕点“下方”的 3D 场景对象/位置列表。
【讨论】:
获取显示 hitTest 运行的示例代码的一种简单方法是使用 XCode6 中的游戏模板创建示例应用程序。创建一个新项目,选择“游戏”模板。
hitTest 代码应该存在于:
- (void) handleTap:(UIGestureRecognizer*)gestureRecognize
【讨论】:
给对象添加一个点击手势,并检查它是否是一个SCNNode()
@objc func tapGestureRec(sender: UIPanGestureRecognizer? = nil){
let location: CGPoint = (sender?.location(in: self.view))!
let hits = self.sceneKitView.hitTest(location, options: nil)
if let tappedNode : SCNNode = hits.first?.node {
...
}
}
【讨论】: