internal void CreateMesh(string meshname, Vector3d[] newVertices, Vector3[] newNormals, Vector2[] newUV, int[] newTriangles /*, Transform objectParent*/) { Mesh mesh = new Mesh(newVertices, newTriangles); string meshparentname = meshname.Split(' ')[0]; mesh.Vertices = newVertices; mesh.Normals = newNormals; MeshSimplifierstruct msc = new MeshSimplifierstruct(); msc.ToSimplify = mesh; msc.name = meshname; loader.meshSimplifierQueue.Add(msc); //} loader.simplifypossible = true; }
internal void createmesh(string meshname, Vector3[] newVertices, Vector3[] newNormals, Vector2[] newUV, int[] newTriangles, Transform objectParent) { Mesh mesh = new Mesh(); GameObject part = new GameObject(meshname); part.AddComponent(typeof(MeshFilter)); part.AddComponent(typeof(MeshRenderer)); var renderer = part.GetComponent <MeshRenderer>(); renderer.material = materialDictionary[0].mat; renderer.enabled = false; renderer.receiveShadows = false; renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; foreach (MaterialPreference mp in materialDictionary) { if (mp.name == meshname.Split(' ')[0]) { part.GetComponent <MeshRenderer>().material = mp.mat; } } //part.GetComponent<MeshRenderer>().material = GetComponent<MeshRenderer>().material; part.name = meshname; part.GetComponent <MeshFilter>().mesh = mesh; string meshparentname = meshname.Split(' ')[0]; if (parentObjects.ContainsKey(meshparentname)) { part.transform.SetParent(parentObjects[meshparentname].transform); allLayerObjects[meshparentname].Add(int.Parse(meshname.Split(' ')[1]), part); } else { GameObject parentobj = new GameObject(meshparentname); parentObjects.Add(meshparentname, parentobj); parentvisible.Add(meshparentname, true); part.transform.SetParent(parentObjects[meshparentname].transform); allLayerObjects.Add(meshparentname, new Dictionary <int, GameObject>()); allLayerObjects[meshparentname].Add(int.Parse(meshname.Split(' ')[1]), part); parentobj.transform.SetParent(RootForObject.transform); parentobj.transform.localPosition = Vector3.zero; parentobj.transform.localScale = Vector3.one; parentobj.transform.localRotation = Quaternion.identity; } part.transform.localPosition = Vector3.zero; part.transform.localScale = Vector3.one; part.transform.localRotation = Quaternion.identity; mesh.vertices = newVertices; mesh.normals = newNormals; mesh.uv = newUV; mesh.triangles = newTriangles; MeshSimplifier meshSimplifier = new MeshSimplifier(); meshSimplifier.Initialize(mesh); MeshSimplifierstruct msc = new MeshSimplifierstruct(); msc.MeshSimplifier = meshSimplifier; msc.MeshFilter = part.GetComponent <MeshFilter>(); //lock (meshSimplifierQueueLock) { loader.meshSimplifierQueue.Enqueue(msc); } loader.simplifypossible = true; }