cocos creator 3.8 如何实现玩家之间可以穿透但不能与墙体穿透?

在 cocos creator 文档中没有发现类似可以用的功能选项。
初学者能力有限,虽然cocos creator 自带碰撞功能实在想不到如何实现这种功能。
请问有人能够实现这个功能吗?

注意:我还需要让玩家之间碰撞可以有碰撞回调

官方文档 -> 碰撞分组

不行。玩家1分组到墙壁那个组去。然后玩家2分组到哪去?还得是墙壁组。那玩家1和玩家2还是碰撞了把

注意了,我还需要让玩家之间碰撞可以有碰撞回调。

玩家直接的重叠判断一般不需要物理系统,玩家可以看成一个圆形,自行循环进行距离判断就可以。

:unamused:

如果你想用物理系统搞也是没问题的,有个思路是角色里放两个碰撞体,一个用于跟墙壁碰撞,一个用于跟角色互相仅触发器。

还有个思路是在碰撞监听里获取碰撞对象,自行判断分组,调用放弃该次物理效果的方法。如果是 2D 物理,有个 contact.disabled = true; 来放弃该碰撞的物理效果。3D
的物理跳过我倒是没搜到。

另一个问题:一个节点添加2个collider2d 组件,刚体它没法判断用哪个作为物理效果把?

这就是我上面说的,可以在回调里自行判断一下回调里的双方碰撞体,然后调用:

那我推荐你在角色下另外建立一个仅触发器用的碰撞盒;
更推荐的做法还是循环自己检测碰撞:
image

自己判断的话,要是复杂的碰撞体就很难搞了。。比如多边形

1赞

你好,我这还有一个问题。collider2d和RigidBody2D 必须同时使用吗? 我单独使用collider2d好像直接没有触发器的作用。什么效果都没有。

对的:
Box2D 物理模块需要先在 Rigidbody开启碰撞监听 ,才会有相应的回调产生。开启方法为,在 Rigidbody2D属性检查器 勾选 EnabledContactListener 属性。。。

我现在在这个节点下添加多一个碰撞检测节点,只触发了2次碰撞然后后面怎么也无法碰撞了。。。

我意思是多刚体,
— player(跟墙物理碰撞)
------ circle(仅触发器)

对,就是这么回事

我写了个 demo: