当第二层在它们之间时,如何避免第一层和第三层之间的碰撞?统一 2D C#

问题描述

我有 3 个层:cartrackoutOfTrack 层。 cartrack 下是 outOfTrack 层。当汽车轨道上时,检测到汽车outOfTrack间的碰撞,所以我想以某种方式避免它.
汽车轨道上时,如何避免汽车outOfTrack间的碰撞检测,并检测仅当汽车接触 outOfTrack 时?

解决方法

转到编辑->项目设置->物理。 你有碰撞矩阵。通过复选框,您可以定义哪个图层与哪个图层发生碰撞。

enter image description here

编辑:碰撞矩阵不应实时更改所有现有联系人。如果我们要这样做,我们就必须重新评估世界上的每一个联系人,这可能非常昂贵且容易被滥用。检查this。因此,您可以尝试使用代码更改碰撞矩阵,您可能可以这样做,但是我建议根据空间而不是时间来处理碰撞.

我的意思是,您不是在汽车偏离轨道时尝试检测碰撞,而是使用相应的层和碰撞器检测碰撞在哪里 跑偏了。

如果您仍然想在运行时更改碰撞矩阵,您可以尝试查看 docs