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);
        }
Beispiel #2
0
    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);
    }
Beispiel #3
0
 public Mesh CreateMesh(Vector2 UVScale, Vector2 UVOffset, PolygonTriangulator2.Triangulation triangulation = PolygonTriangulator2.Triangulation.Advanced)
 {
     return(PolygonTriangulator2.Triangulate(this, UVScale, UVOffset, triangulation));
 }