我想检查两个向量点之间的线是否落在特定区域或一组向量坐标中?

I want to check if a line between two vector points falls into a particular area or a set of vector coordinates?

注意:我在 Unity 中使用 C# 脚本进行编码。我不能使用光线投射来使用触发器命中检测,因为在目标和源之间有很多触发器碰撞器可以检测触摸和排序。所以射线在到达目标之前就击中了其他触发器,这是不可取的。

我想完成的基本上是return一个布尔值,如果一条矢量线穿过或相交一组特定的矢量坐标或一个区域。 例如:检测到激光在射击目标时进入其路径之间的雾中。雾是一个基于触发碰撞器的游戏对象。

编辑:另一个例子是检查一条线是否穿过二维图形中的二维框区域。请记住,我不能在此处使用碰撞检测或 Raycast 命中。

无需代码,只需说明如何实现的概念即可。尽管也欢迎使用代码片段。谢谢!

[...] So the ray hits the other triggers before even reaching it's target, which is not desirable.

把它放在图层上怎么样?您可以为 Raycasts 指定 LayerMasks。

您可以将 2D 框的边缘视为线,即 4 条线,并使用线对线相交技术检查线与这 4 条边的交点。但是,如果线足够小以适合框内,并且您想将其视为有效交点,则检查线的两个点是否在框的边界内。