首页 > 解决方案 > 获取对撞机中的最近点

问题描述

我想知道如何获得此功能在 Unity 2018.3 中提供的相同结果,但该功能尚不可用:

https://docs.unity3d.com/2019.1/Documentation/ScriptReference/Collider2D.ClosestPoint.html

标签: c#unity3d

解决方案


我今天遇到了这个问题,我也在用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/


推荐阅读