- Home /
Question by
Rizzutp · Jan 29, 2020 at 11:52 AM ·
cameraboundsboundingbox
Reporting the vertices of a 3D Bounding Box to Screen position
Hello there, I wrote the following method for having the 8 vertices of a 3D bounding box. I need to have those vertices reported with respect to the screen. Here it is my solution:
public Vector3[] BuildBoundingBox3D(GameObject o, Camera cam)
{
Renderer[] rends = o.GetComponentsInChildren<Renderer>();
Bounds bounds = rends[0].bounds;
foreach (Renderer rend in rends)
{
bounds = bounds.GrowBounds(rend.bounds);
}
Vector3[] results = new Vector3[8];
results[0] = new Vector3(bounds.min.x, bounds.min.y, bounds.min.z);
results[1] = new Vector3(bounds.max.x, bounds.min.y, bounds.min.z);
results[2] = new Vector3(bounds.max.x, bounds.max.y, bounds.min.z);
results[3] = new Vector3(bounds.min.x, bounds.max.y, bounds.min.z);
results[4] = new Vector3(bounds.min.x, bounds.min.y, bounds.max.z);
results[5] = new Vector3(bounds.max.x, bounds.min.y, bounds.max.z);
results[6] = new Vector3(bounds.max.x, bounds.max.y, bounds.max.z);
results[7] = new Vector3(bounds.min.x, bounds.max.y, bounds.max.z);
for (int i = 0; i < results.Length; i++)
{
results[i] = cam.WorldToScreenPoint(results[i]);
results[i].y = Screen.height - results[i].y;
}
return results;
}
I don't know if this is correct, or if there exists a better way to obtain the BB vertices w.r.t. the screen
Comment
Your answer
Follow this Question
Related Questions
This camera controller is overriding it's default position when the boundary check is enabled? 0 Answers
Keeping the camera in bounds 1 Answer
Why isn't Bounds.Encapsulate working as expected? 1 Answer
Issue with checking to see whether the Bounds value's of two game objects equal each other 1 Answer
How do I keep an Ortho camera in a specific range when the ortho changes? 3 Answers