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

时间:2015-08-06 13:11:42

标签: ios swift collision detection scenekit

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

有人可以解释我如何使用该事件处理程序(首选是在Swift中解释我),或者你能否给我另一个想法?

1 个答案:

答案 0 :(得分:4)

最后很简单。首先,您必须将一组节点分配给粒子系统的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中简要解释了每个参数。