Unity3d Unity从内部获得到碰撞R2D边缘的距离
我有一个,在一个较大的静止碰撞R2d内移动,我想得到从较小碰撞R2d的中心到较大碰撞R2d边缘的距离,沿着碰撞R2d移动的方向 我的第一个想法是使用一种方法,例如: 但是很明显,距离总是0,因为它们已经相交了 有没有办法做到这一点 编辑:这是一张所要求的图表Unity3d Unity从内部获得到碰撞R2D边缘的距离,unity3d,unity3d-2dtools,Unity3d,Unity3d 2dtools,我有一个,在一个较大的静止碰撞R2d内移动,我想得到从较小碰撞R2d的中心到较大碰撞R2d边缘的距离,沿着碰撞R2d移动的方向 我的第一个想法是使用一种方法,例如: 但是很明显,距离总是0,因为它们已经相交了 有没有办法做到这一点 编辑:这是一张所要求的图表 两个圆都是碰撞的R2D对象,箭头是较小的一个移动的方向,红色的x是我想要找到的点(因此我可以确定距离)。与其尝试检查碰撞,不如用数学方法进行检查 如果知道圆的半径/位置、较小碰撞R2D的位置及其运动矢量,则可以求解该运动矢量与圆相交的位置
两个圆都是碰撞的R2D对象,箭头是较小的一个移动的方向,红色的x是我想要找到的点(因此我可以确定距离)。与其尝试检查碰撞,不如用数学方法进行检查 如果知道圆的半径/位置、较小碰撞R2D的位置及其运动矢量,则可以求解该运动矢量与圆相交的位置 下面是如何从数学上计算出来的:
如果仍要进行光线投射,另一种方法是沿较小对象的运动向量从一个点投射光线,距离大于较大圆的直径。然后,该光线将投射到较小的对象。基本上,您是从圆外部而不是圆内部投射光线。使用碰撞器的边界。。。图表或屏幕截图会非常有用,当你说一个碰撞器在另一个碰撞器内部时,我不确定你到底在描述什么。好主意Savlon但是边界表示一个轴对齐的边界框,而外部碰撞的R2D是一个圆。我已经通过编写自己的光线圆相交测试来做到这一点,但我仍然有兴趣知道,是否有一种方法可以做到团结一致。
Physics2D.Raycast(this.transform.position,
this.rigidbody2D.velocity.normalized).distance;