请教大佬一个物理引擎的问题

子弹射击到怪物身上,这个逻辑是在onBeginContact还是onPreSolve里面去写,另外子弹打到怪物身上这个是在Collider通过设置不同的tag去实现逻辑的吗,刚接触物理引擎是一个小白,请指教

自顶一下了

onBeginContact
tag可以满足区分碰撞体的需求

好的,谢谢,刚刚接触物理引擎,啥也不明白,
另外问一下,onPreSolve这个方法一般是在什么情况下使用,可以举一下例子吗

不好意思,我接触过的物理项目没用到过,无法给出答案。
这是官方文档中的描述:
当两个碰撞体相互覆盖时,box2d 默认的行为是给每个碰撞体一个冲量去把它们分开,但是这个行为不一定能在一个时间步内完成。 像这里显示的一样,示例中的碰撞体会在三个时间步内相互覆盖直到“反弹”完成并且它们相互分离。
在这个时间里我们可以定制我们想要的行为,onPreSolve 会在每次物理引擎处理碰撞前回调,我们 可以在这个回调里修改碰撞信息,而 onPostSolve 会在处理完成这次碰撞后回调,我们可以在这个回调中获取到物理引擎计算出的碰撞的冲量信息。

请教一下,当一个刚体和一个另一个传感器碰撞时是不是获取不了碰撞信息

刚体需要有物理碰撞组件才行

现在就是我有两个刚体一个是子弹(子弹加了刚体,也加了PhysicsBoxCollider, 并且它没有设置成传感器)
另外一个刚体是敌人(加了刚体,也加了PhysicsBoxCollider,但是设置成了传感器)
现在就是当子弹打到这个敌人身上是在碰撞回调函数中onBeginContact(contact, selfCollider, otherCollider), contact获取不了碰撞信息

onPreSolve你可能需要它