ios - 检测 SceneKit 中粒子和节点之间的碰撞

标签 ios swift collision detection scenekit

我有几个具有运动学 phyisicsBodyType 的节点,我希望它与某些粒子系统交互,我的意思是我想检测碰撞并在节点与粒子系统中的 nay 粒子碰撞时执行一些代码.我找到了一种添加事件处理程序的方法,但我不太确定如何使用它 ( link to method here )。

谁能解释一下我如何使用该事件处理程序(最好是用 Swift 解释一下),或者你能给我另一个想法吗?

最佳答案

最后很简单。首先,您必须将节点数组分配给粒子系统的 colliderNodes 属性。之后,swift 中的代码看起来像这样:

    particleSystem.handleEvent(SCNParticleEvent.Collision, forPropierties:[SCNParticlePropertyContactPoint], withBlock: {
        (data: UnsabeMutablePointer<UnsafeMutablePointer<Void>>, dataStride: UnsafeMutablePointer<Int>, indicies: UnsafeMutablePointer<UInt32>, count:Int) in 
        //code on detection collision goes here
})

每个参数都在 apple documentation 中进行了简要说明。 .

关于ios - 检测 SceneKit 中粒子和节点之间的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31856763/

相关文章:

iphone - Modal UIViewController 总是在 iPad 上全屏显示。为什么?

ios - GLKit 离屏渲染到纹理不工作

iphone - 选择 info.plist 文件

ios - 如何将 UIAlertController 操作表标题垂直居中对齐?

ios - Xcode 8 语法突出显示不起作用

Javascript:检查两个div之间的碰撞

c# - 2D 碰撞检测不起作用

ios - if语句没有显示结果?

swift - 如何快速暂停和恢复 NSTimer.scheduledTimerWithTimeInterval?

c# - 碰撞后如何为我的播放器关闭重力?