【发布时间】:2019-12-21 20:18:16
【问题描述】:
在 Unity 5.6 C# 中,我知道有一种方法可以使用 IsTouching 检查碰撞器是否被任何其他碰撞器接触。
但是,我想知道如何将两个碰撞器组合在一起(彼此接触),以及如何检查它们是否都接触到彼此之外的任何碰撞器。
【问题讨论】:
-
将碰撞保存在一个列表中,检查两者是否与其他任何东西碰撞,然后是它们的“伙伴”
-
@derHugo,我该怎么做? IsTouching 返回一个布尔值
-
OnCollisionEnter-> 将碰撞器添加到列表中;OnCollisionExit-> 从列表中删除该对撞机 => 列表中的所有内容当前正在接触。 =>if(collisions.Count == 1)你知道只有 1 个“伙伴”接触这个物体。现在您只需要检查其他对象是否也只有 1 次触摸以及您是否是此对象。 -
您也可以将碰撞器放在一个图层中并使用
contactFilter设置图层蒙版 -
实际上我猜它更容易......你只需要一个脚本,对吧?