See if a point is inside a box by doing a reverse transform on the point into box local space.

bool PointInBox(Vector3 a_point, BoxCollider a_box)
{
// Transform the point into box local space
a_point = a_box.transform.InverseTransformPoint(a_point) - a_box.center;
// see if the point is inside the box local space
Vector3 half = a_box.size * 0.5f;
if (a_point.x < half.x && a_point.x > -half.x &&
a_point.y < half.y && a_point.y > -half.y &&
a_point.z < half.z && a_point.z > -half.z)
{
// Get a 0.0 to 1.0 range for each axis
Vector3 current = a_point + half;
m_last.x = current.x / a_box.size.x;
m_last.y = current.y / a_box.size.y;
m_last.z = current.z / a_box.size.z;
m_lastPoint = a_point; // Set the last valid point inside the test area
return true;
}
return false;
}

### Like this:

Like Loading...

*Related*