我有一个Collider2D,它在一个更大的,静止的Collider2D内移动,我想得到从小的一个的中心到大的那个的边缘沿它所移动的方向的距离。
我的第一个想法是使用雷卡斯特,例如:
Physics2D.Raycast(this.transform.position,
this.rigidbody2D.velocity.normalized).distance;但显然距离总是0,因为它们已经相交了。
有办法这样做吗?
编辑:这是一个按要求提供的图表

两个圆都是Collider2D对象,箭头是较小的方向,红色x是我想要找到的点(这样我就可以确定距离)。
发布于 2015-03-09 21:02:01
而不是试图检查碰撞,你可以做数学计算。
如果你知道圆的半径/位置,较小的Collider2D的位置,以及它的运动矢量,那么你就可以解出这个运动矢量与圆相交的位置。
下面是如何从数学上解决这个问题:intersection.html
另一种方法,如果你仍然想要光线投射,可以从一个点沿较小物体的运动矢量,距离大于较大圆的直径。然后将这条射线投射到较小的物体上。本质上,你是从圆外投射光线,而不是在圆内投射射线。
https://stackoverflow.com/questions/27585197
复制相似问题