3.4.0 物理碰撞

Creator 版本: 3.4.0

我这边创建了两个碰撞体,一个是玩家添加了BoxCollider,设置成触发器,一个是圆柱体添加了CylinderCollider。
两个节点都有设置RigidBody刚体,物理碰撞矩阵也设置了。
玩家节点监听了onTriggerEnter,但是碰撞的时候却没有反应。
想请请教下,是还有什么东西没设置吗?

有设置碰撞矩阵吗
https://docs.cocos.com/creator/manual/zh/editor/project/physics-configs.html

有,设置了

可以出个简单的demo吗

image
你可以看下你这里IsTrigger有没有勾选,没有勾选的用onCollisionEnter,勾选的用onTriggerEnter

我遇到过这问题, 试着把监听事件晚一个frame设置

那些都有设置。

testCollisionProject.zip (1.3 MB)
demo差不多就是这样的

改好了testCollisionProject.rar (1.1 MB)
改了几处地方
1.添加layer


2.设置layerimage image
3.移动player位置,设置刚体type=dynamic
4.去掉player脚本绑定,如果需要改节点运动方式,可以设置物体刚体的LinerFactor,不要直接设置position

去掉玩家脚本,用重力是可以检测到碰撞,但是玩家节点是玩家手动操作移动,这个脚本不能去掉啊,demo只是让他自己移动而已。
开启重力就会往下掉,我设置了LinerFactor的x,z,玩家节点都是不动的,加个脚本设置了LinerFactor的y为0,他还是没有输出碰撞

我找到是啥问题了,感谢大佬帮忙

兄弟,用LinerFactor也是可以的image

testCollisionProject.rar (1.1 MB)

大佬用这个方法的话,要怎么设置他移动的速度?

哦,我知道了,改他的值大小,我还以为那是移动的距离

这个还真是距离···是移动的时间是固定的,那这个移动的时间,要在哪里设置?

刚体上没有设置移动的时间,你可以自己计时,另外设置线速度也是可以的rigidBody.setLinearVelocity(new Vec3(-2, 0, 0))

我悟了,感谢大佬解惑,大佬牛逼,666

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。