在花栗鼠中我有3种类型的物体:A,B和C.我需要A和B不要碰撞。我还需要B和C不要碰撞。另一方面,我需要A和C相撞。对于A和B不碰撞,我将其collisionGroup设置为相同。如果我将B和C设置为相同的collisioGroup,则此时A和C将具有相同的碰撞组,从而导致A和C不发生碰撞。我试图设置collisionMask / collisionCategories,但这也没有帮助。知道怎么做到这一点吗?
答案 0 :(得分:0)
这是我如何解决问题的方法。
A.collisionGroup=@"beams"
A.collisionCategory=@[@"beam"];
A.collisionMask=@[@"box"];
B.collisionGroup=@"beams"
B.collisionMask=@[@"none"];
C.collisionCategory=@[@"box"];
C.collisionMask=@[@"beam"];
说清楚。我将相同的碰撞组分配给A和B,以便它们在任何情况下都不会发生碰撞。这是因为碰撞组会覆盖使用collisionMask和collisionCategory定义的任何行为。然后我设置为A只与C碰撞而C只与A碰撞。我通过交叉设置彼此的碰撞事件和碰撞分类来做到这一点。还有一个非常重要的考虑因素是,如果你不想让B也与C发生碰撞,你必须将B的collisionMask设置为其他东西,否则B将与不在同一碰撞组中的任何东西发生碰撞。哎呀,就是这样。