- Home /
Get right or left Vector2/3 out of renderer.bounds
Hi!
I have a 2D sprite that I'm rotating and moving using the animation curve system(legacy animation).
I can easily find the center point (bounds.center) and have been trying to extract the left facing vector from this center point.
EDIT
Ok so... I figured it out, here is the code I'm using, if anyone knows of a better way to do this PLEASE let me know, Thanks!
Bounds EyeBounds = m_tIris.GetComponent<MeshFilter>().mesh.bounds;
Vector2 TopLeft = m_tIris.TransformPoint(((Vector2)EyeBounds.center + new Vector2(-EyeBounds.extents.x, EyeBounds.extents.y)));
Vector2 BottomLeft = m_tIris.TransformPoint(((Vector2)EyeBounds.center - new Vector2(EyeBounds.extents.x, EyeBounds.extents.y)));
Debug.DrawLine(TopLeft, BottomLeft);
Vector2 EyeLeft = (TopLeft + BottomLeft) * 0.5f;
Debug.DrawLine(m_tIris.TransformPoint(EyeBounds.center), EyeLeft);
Use -transform.right
or transform.TransformDirection(Vector3.left)
.
I may be misunderstanding but...
-transfrom.right (in my case -m_tIris.right) would give me the left facing vector relative to the local transform.
I need essentially the same vector but relative to the mesh bounds, not the transform.
The mesh bounds is in local coordinates. Therefore -transform.right will be the left facing vector relative to the bounds. That is you are doing a 'TransformPoint()' on the points in the bounds to transform them to world coordinates. -transform.right is the same as transform.TransformDirection(Vector3.left). This takes the local left and transforms it into world space.
I get that, but again, the local transform left, in my case, is not the same as the left facing vector of the mesh bounds.
Or are you saying somehow take the mesh bounds, center and orientate a transform to it, and use that transform's local vector?
A 'Bounds' is axis aligned. In the case of the $$anonymous$$esh.bounds, it is axis aligned to the local coordinates. A bounds doesn't have a 'left facing vector'. It has size, or extents that assume the local space. So the local Vector3.left is not just the same as the $$anonymous$$esh.bounds, it defines the left for the bounds.
$$anonymous$$y guess is that you are trying to solve some specific problem here and I'm missing it. $$anonymous$$aybe you want to explain what you are struggling with.
Your answer
Follow this Question
Related Questions
Find a Touch in the BoxCollider 1 Answer
Normalizing a vector 1 Answer
Writing Policy class for handling Vector2s and 3s. 1 Answer
Issue with bounds.SetMinMax assigning incorrectly. 1 Answer
Get a position relative to a gameobject 0 Answers