Mesh normals not rotating with object

I have a quad (named Quad) and I am trying to access it from another class. So I have been using GameObject.Find(“Quad”) and that is cool, but when I get the normals from the MeshFilter, they do not change regardless of how the actual game object is oriented. This is a problem as I need the normal vector of the quad in order to compute some other things.

I tried using TransformPoint() (for some reason TransformDirection did nothing) but it still isn’t quite right.

How can I get the normal vector in the correct direction even when the game object changes?


Four years later, I ran into this very problem. Your question led me to the answer. Transform.TransformPoint() will update the vertex positions, but not the normals. Transform.TransformVector() is the other half of the equation:

private void OnDrawGizmos() { if (_isMeshNotNull) { Gizmos.color =; for (var i = 0; i < _mesh.vertices.Length; i++) { var vert = gameObject.transform.TransformPoint(_mesh.vertices*);* <em>var normal = gameObject.transform.TransformVector(_mesh.normals*);*</em> _*Gizmos.DrawSphere(vert, 0.1f);*_ _*Gizmos.DrawLine(vert, vert + normal);*_ _*}*_ _*}*_ _*}*_ _**_