Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find a nearest/closest point on a GameObject from location?

I want to find out a point on boom section from load hanging on crane which have minimum distance from load, crane-Boom having BoxCollider on hit and I am using Physics.overlap method.

How do you find a closest point on a GameObject from source object?

[1]: https://i.stack.imgur.com/ZBRqm.pngenter image description here

like image 247
UnityDev Avatar asked Jan 02 '23 14:01

UnityDev


1 Answers

You can do that with Collider.ClosestPoint and Collider.ClosestPointOnBounds. If you also want to check for custom position and rotation instead of using the collider's postion and roation then use Physics.ClosestPoint.

Example usage for 3 of these functions:

public Vector3 sourceObject;
public Collider targetCollider;

// Update is called once per frame
void Update()
{
    //Method 1
    Vector3 closestPoint = targetCollider.ClosestPoint(sourceObject);

    //Method 2
    Vector3 closestPointInBounds = targetCollider.ClosestPointOnBounds(sourceObject);

    //Method 3
    Vector3 pos = targetCollider.transform.position;
    Quaternion rot = targetCollider.transform.rotation;
    Vector3 closestPointCollider = Physics.ClosestPoint(sourceObject, targetCollider, pos, rot);
}
like image 65
Programmer Avatar answered Jan 31 '23 09:01

Programmer