Direction of a mesh


I got a cube and want to create a script that changes vertices in relation to their position.
So for example I want to on the top of a cube change a vert += Vector3(0,1,0);
That will let the vert go higher.
But if I do the same script on the “right” or “left” side of the cube, the vertice should move along +x or -x , not y axis. So how I can find out at which direction one side of a cube is “looking”?
Thanks in advance :slight_smile:

for(int i = 0, n = 0; i < mesh.triangles; i += 3, n++){
Vector3 normal = mesh.normal[n];
Vector3 p1 = mesh.vertices[ mesh.triangles ];
Vector3 p2 = mesh.vertices[ mesh.triangles[i+1] ];
Vector3 p3 = mesh.vertices[ mesh.triangles[i+2] ];
// Do your business here
That code isn’t tested.

You can get the surface normal of a triangle like this:

var v0 = vertices[0];
var v1 = vertices[1];
var v2 = vertices[2];
var surfaceNormal = Vector3.Cross (v1 - v0, v2 - v0).normalized;

vertices[0], [1], and [2] should, of course, be replaced with the actual vertices of the triangle that you’re interested in.