【发布时间】:2017-03-22 19:24:34
【问题描述】:
我在操场上创建一个场景并使用 hitTest (func hitTest(_ point: CGPoint, options: [SCNHitTestOption : Any]? = nil) -> [SCNHitTestResult]) 函数来确定其中一个节点是否已被触摸,但只有当节点被触摸时,它才会导致操场上的模拟器崩溃。使用 xcode 的 iOS 项目上的相同代码不会发生这种情况。
func panGesture(sender: UIPanGestureRecognizer) {
sender.view
let translation = sender.translation(in: sender.view!)
var newAngleX = (Float)(translation.y)*(Float)(M_PI)/180.0
newAngleX += currentXAngle
var newAngleY = (Float)(translation.x)*(Float)(M_PI)/180.0
newAngleY += currentYAngle
if (sender.numberOfTouches>0){
var point = sender.location(in: self)
print(point)
let hit = self.hitTest(point, options: nil)
let node = hit.first?.node
node?.eulerAngles.x = newAngleX
node?.eulerAngles.y = newAngleY
if(sender.state == UIGestureRecognizerState.ended) {
currentXAngle = newAngleX
currentYAngle = newAngleY
}
}
}
【问题讨论】:
-
有栈吗?
-
没有.. Xcode 上新游戏项目的示例代码与在 playground 上报告的 sceneKit 会产生同样的问题
-
发布您的整个 Playground 文件?或者至少足以证明问题?
标签: ios swift scenekit swift-playground