NearestPoint() public static method

public static NearestPoint ( Vector3 lineStart, Vector3 lineEnd, Vector3 point ) : Vector3
lineStart Vector3
lineEnd Vector3
point Vector3
return Vector3
Example #1
0
    // Update is called once per frame
    void LateUpdate()
    {
        if (prevNode == null)
        {
            NNInfo nninfo = AstarPath.active.GetNearest(transform.position);
            prevNode = nninfo.node;
            prevPos  = transform.position;
        }

        if (prevNode == null)
        {
            return;
        }

        if (prevNode != null)
        {
            IRaycastableGraph graph = AstarData.GetGraph(prevNode) as IRaycastableGraph;
            if (graph != null)
            {
                GraphHitInfo hit;
                if (graph.Linecast(prevPos, transform.position, prevNode, out hit))
                {
                    hit.point.y = transform.position.y;

                    Vector3 closest = Mathfx.NearestPoint(hit.tangentOrigin, hit.tangentOrigin + hit.tangent, transform.position);
                    if (graph.Linecast(hit.point, closest, hit.node, out hit))
                    {
                        hit.point.y        = transform.position.y;
                        transform.position = hit.point;
                    }
                    else
                    {
                        closest.y          = transform.position.y;
                        transform.position = closest;
                    }
                }
                prevNode = hit.node;
            }
        }

        prevPos = transform.position;
    }