在SceneKit的动画期间碰撞是否有效?

时间:2017-08-02 09:44:49

标签: swift scenekit

我想做一个简单的小行星游戏,其中小行星从远处绕过你(Scene> 0)在SceneKit中。

let moveAction = SCNAction.move(to: SCNVector3(0, -10, 10), duration: 2)
rockNode.runAction(moveAction)

说我在Z轴0上有一艘宇宙飞船,即使我能在视觉上看到小行星穿过宇宙飞船,也不会发生碰撞探测。只有当moveAction的终点在Z轴0和与宇宙飞船相同的位置结束时,才会发生碰撞。

检测是否仅在moveAction结束后发生(因此不会检测到碰撞)?如果是,我在检测小行星运动过程中的碰撞时有什么解决方案?

2 个答案:

答案 0 :(得分:0)

您是否在两个对象上将isDynamic设置为true?并且它们都需要具有不同的categoryBitmas,否则SceneKit会将它们视为相同的对象(如果没有,则不能评论50个代表)如果不这样做,即使以编程方式移动对象也应该发生冲突

答案 1 :(得分:0)

将物理主体设为:kinematic。因此即使在SCNAction期间它也可以检测到冲突。

例如:

rockNode?.type = .kinematic

或者您可以在Physics Inspector中进行设置

继续编码.......:)