protected void SetMaterials(MeshRenderer renderer, UnityStyleMesh meshsrc, GeometryNode update) { MaterialIDsMap map = renderer.gameObject.AddComponent<MaterialIDsMap>(); Material[] materials = new Material[meshsrc.face_groups.Count]; for (int i = 0; i < meshsrc.face_groups.Count; i++) { map.m_materialIds.Add(meshsrc.face_groups[i].MaterialId); Material m = new Material(Shader.Find("Diffuse")); m.name = update.MaterialName; materials[i] = m; } renderer.materials = materials; }
protected void SetMeshContent(Mesh mesh, UnityStyleMesh meshsrc) { mesh.vertices = meshsrc.components.vertices; mesh.normals = meshsrc.components.normals; mesh.uv = meshsrc.components.uvs; mesh.uv2 = meshsrc.components.uvs2; mesh.subMeshCount = meshsrc.face_groups.Count; for (int i = 0; i < meshsrc.face_groups.Count; i++) { mesh.SetTriangles(meshsrc.face_groups[i].FaceIndices, i); } mesh.RecalculateBounds(); }