- Home /
Find extreme points of rotated gameObjects? (screenshot example)
How can I easily get the vectors of the highest, lowest, at left, at right points in any rotated or not gameObject?
Answer by Bunny83 · Dec 19, 2014 at 03:43 AM
This should work for your cases quite well:
The returned Bounds has a min and max property which will return the AABB min and max value in all 3 axes. Since you're in 2d just ignore the z value ^^
edit
If you need the exact point there's no way around testing all points manually. Depending on what your GameObject is made of it would require a different approach. Basically all will come down to using transform.TransformPoint to get a local space position into worldspace. Then just iterate through all points to find the one with the lowest / highest x / y value.
oh nicee, so even though gameObjects are rotated it still manages to find the extreme points? :)
@Bunny83 can you give me simple example with code how am I supposed to make that if not with just using collider2d.bounds.max.(x/y)
Collider.bounds or Renderer.bounds just return the AABB (Axis Aligned Bounding Box)(image) of the collider / mesh.
As i said it just tells you the x or y position where the object ends in that direction. It won't tell you the exact point / vertex. See my edit above.
Answer by kblood · Jun 06, 2020 at 02:47 AM
As Bunny83 wrote, you should iterate over all vertices and using transformpoint on each of them.
Using Linq you can do this: float minY = transform.GetComponentsInChildren().SelectMany(m => m.mesh.vertices).Min(v => transform.TransformPoint(v).y);
It iterates over all meshfilters in all children, selects all their vertices and finds the lowest/min y point.
Your answer
![](https://koobas.hobune.stream/wayback/20220613174415im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
How to make cubes between 2 point and stick them together? 0 Answers
Distribute terrain in zones 3 Answers