How to obtain the world space coordinates for each individual vertex on a Mesh?

Hi all,

I’d like to know how to obtain the world space coordinates for each individual vertex on a Mesh, which has been previously loaded and assigned to a Gameobject. My code is:

public class ComputeAngles : MonoBehaviour {
	
Mesh _malla;
GameObject _67P_3Dobject;
Material _67P_material;
Vector3 _sunPosition = new Vector3(0.0f,0.0f,0.0f);
Vector3 _67PPosition = new Vector3(0.0f,0.0f,0.0f);
float scale = 10.0f;
int j;
	
void Start(){

    //Load mesh and material
    _malla  = Resources.Load("Meshes/tube",typeof(Mesh)) as Mesh;
    _67P_material = Resources.Load("Meshes/Materials/No Name",typeof(Material)) as Material;
    	
    //A gameobject is created and the mesh is assigned to it 	
    _67P_3Dobject = new GameObject("67P");
    _67P_3Dobject.AddComponent<MeshFilter>();
    _67P_3Dobject.AddComponent<MeshCollider>();
    _67P_3Dobject.GetComponent<MeshFilter>().mesh = _malla;
    _67P_3Dobject.AddComponent<MeshRenderer>();
    _67P_3Dobject.transform.position = _67PPosition;
    _67P_3Dobject.transform.localScale = new Vector3(scale,scale,scale);
    Renderer renderer = _67P_3Dobject.GetComponent<MeshRenderer>().renderer;
    renderer.material = _67P_material;
    
    //We print the number of vertices and facets of the mesh
    print("Number of vertices = "+_malla.vertexCount);
    print("Number of facets = "+_malla.triangles.Length/3);
    		
    	
    //We print the world coordinates of each vertex in the mesh	
    Mesh mesh_runtime = _67P_3Dobject.GetComponent<MeshFilter>().mesh;
    Vector3[] verteces = mesh_runtime.vertices;
    		
    foreach (Vector3 vertex in verteces) {
    print(transform.TransformPoint(vertex));
    }
}}

However, it seems like the coordinates of the vertices are wrong, since they do not correspond to the bounds of the mesh in the space.

Please, let me know, I’m completely mad about this issue.
Kind regards

The problem is that you are getting the vertices in local space not in world space. there is an easy projection from local to world by calling this function for every vertex:

Transform tr = _67P_3Dobject.transform;

for(int i = 0 i < verteces.Length; ++i)
{
   verteces _= tr.TransformPoint(verteces*);*_

}