public override List <MeshObject> GetMeshes() { if (Meshes == null) { List <Polygon2> polygons = GetPolygonsLocal(); if (polygons.Count > 0) { Meshes = new List <MeshObject>(); foreach (Polygon2 poly in polygons) { if (poly.points.Length < 3) { continue; } Mesh mesh = PolygonTriangulator2.Triangulate(poly, Vector2.zero, Vector2.zero, PolygonTriangulator2.Triangulation.Advanced); if (mesh) { MeshObject meshObject = MeshObject.Get(mesh); if (meshObject != null) { Meshes.Add(meshObject); } } } } } return(Meshes); }
public Mesh CreateMesh(GameObject gameObject, Vector2 UVScale, Vector2 UVOffset, PolygonTriangulator2.Triangulation triangulation = PolygonTriangulator2.Triangulation.Advanced) { if (gameObject.GetComponent <MeshRenderer>() == null) { gameObject.AddComponent <MeshRenderer>(); } MeshFilter filter = gameObject.GetComponent <MeshFilter> (); if (filter == null) { filter = gameObject.AddComponent <MeshFilter>() as MeshFilter; } filter.sharedMesh = PolygonTriangulator2.Triangulate(this, UVScale, UVOffset, triangulation); if (filter.sharedMesh == null) { UnityEngine.Object.Destroy(gameObject); } return(filter.sharedMesh); }
public Mesh CreateMesh(Vector2 UVScale, Vector2 UVOffset, PolygonTriangulator2.Triangulation triangulation = PolygonTriangulator2.Triangulation.Advanced) { return(PolygonTriangulator2.Triangulate(this, UVScale, UVOffset, triangulation)); }