检查点是否在矩形内的方法? (在边界内移动物体)

问题描述 投票:0回答:0

我想做的是移动物体,例如将盒子移动到另一个盒子的顶部,但不要越过边界。想想墙上的动态图片。因此,如果我在到达边缘时拖动较小的对象,则对象会停止沿该方向移动,但在其他方向上它可以移动(例如,不能越过左边缘但可以上下移动)。我想弄清楚如何确定对象边缘、对象边缘上的点或中心点是否在该轴中对象大小的一半在矩形内,而不是在该轴中对象的边界上。

这里的问题是较小的物体与较大的物体有一点偏移,它们不在同一平面上。另一个问题是平面不与世界轴对齐,相同的方法应该适用于其他平面以及与点 R2、R5、R6、R4 成某些角度的平面

我已经有了一些适用于某些情况但不适用于所有情况的东西,它比我想要的更复杂,可能会有更简单的解决方案,所以我在这里寻求建议。

我使用了很多点、平面、投影等……但应该有更简单的东西。也许我在这里过度设计了:)

编辑:

我实际上使用的是盒子对撞机边界,但使用的顶点面向较大的物体(墙),对于较小的物体(绘画)也是如此,只是面向前方的顶点。所以基本上我不处理矩形。所以基本上问题是如何检查较小物体的任何角是否在较大物体的角所形成的区域内。

  • 得到墙的平面
  • 获取墙壁平面上的绘画点(因为偏移)
  • 以某种方式检查点是否在区域内?
c# unity3d math geometry
© www.soinside.com 2019 - 2024. All rights reserved.