c# - 获取对撞机中的最近点

标签 c# unity3d

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

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

最佳答案

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

关于c# - 获取对撞机中的最近点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56611722/

相关文章:

c# - 带有计时器的 Xamarin Android UI 没有对更改使用react

c# - 在 InputField 中检测复制和粘贴

c# - 如何在 Visual Studio Code for Unity 函数名称中获取智能感知?

animation - 如何在 Unity3D 中编辑动画

c# - 即使应用程序处于后台,Time.unscaledDeltaTime 仍然在计数

java - C# 是否允许对接口(interface)类执行与 Java 8 现在相同的操作

c# 加载C文件,然后将其转换为Assembly

c# - Func<string,string> 和 delegate 有什么区别?

c# - ADO.NET 自跟踪实体生成器编译错误

c# - Kinect 和 Unity3D : Mapping Kinect Joints with 3D model