public void CreateMesh(ImportDataTypes.Mesh importMesh) { GameObject meshOB = GameObject.Find(importMesh.header.transformName.text).gameObject; Mesh mesh = new Mesh(); MeshFilter meshFilter = meshOB.AddComponent <MeshFilter>(); meshFilter.mesh = mesh; MeshRenderer meshRenderer = meshOB.AddComponent <MeshRenderer>(); Material material = defaultMaterial; meshRenderer.material = material; List <Vector3> verticesToUse = new List <Vector3>(); List <Vector2> uvsToUse = new List <Vector2>(); for (int i = 0; i < importMesh.body.vertices.Length; i++) { Vector3 pos = new Vector3((float)importMesh.body.vertices[i].position.x, (float)importMesh.body.vertices[i].position.y, (float)importMesh.body.vertices[i].position.z); verticesToUse.Add(pos); } for (int i = 0; i < importMesh.body.vertices.Length; i++) { Vector2 uv = new Vector2((float)importMesh.body.vertices[i].uv.x, (float)importMesh.body.vertices[i].uv.y); verticesToUse.Add(uv); } mesh.vertices = verticesToUse.ToArray(); mesh.uv = uvsToUse.ToArray(); mesh.RecalculateNormals(); }
private void Start() { this.GetComponent <Importer>().ReadScene(); ImportDataTypes.Scene scene = this.GetComponent <Importer>().scene; for (int i = 0; i < scene.header.transformCount; i++) { CreateTransform(scene.body.transforms[i]); } for (int i = 0; i < scene.header.meshCount; i++) { ImportDataTypes.Mesh mesh = scene.body.meshes[i]; CreateMesh(mesh); } }