获取碰撞器中最近的点

5
1个回答

4
今天我遇到了这个问题,我也在使用2018.3版本。这里有一个帮助函数可以替代collider2D.ClosestPoint函数。根据你的需要来编辑碰撞器即可。
public static class Collider2DExtension
{
    /// <summary>
    /// Return the closest point on a Collider2D relative to point
    /// </summary>
    public static Vector2 ClosestPoint(this Collider2D col, Vector2 point)
    {
        GameObject go = new GameObject("tempCollider");
        go.transform.position = point;
        CircleCollider2D c = go.AddComponent<CircleCollider2D>();
        c.radius = 0.1f;
        ColliderDistance2D dist = col.Distance(c);
        Object.Destroy(go);
        return dist.pointA;
    }
}

内容来源于这个线程:https://forum.unity.com/threads/get-closest-point-of-collider2d.225120/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接