public static Mesh CreateMesh(List <Polygon2D> polygons, GameObject gameObject, Vector2 UVScale, Vector2 UVOffset, PolygonTriangulator2D.Triangulation triangulation = PolygonTriangulator2D.Triangulation.Advanced) { if (gameObject.GetComponent <MeshRenderer>() == null) { gameObject.AddComponent <MeshRenderer>(); } MeshFilter filter = gameObject.GetComponent <MeshFilter> (); if (filter == null) { filter = gameObject.AddComponent <MeshFilter>() as MeshFilter; } CombineInstance[] combine = new CombineInstance[polygons.Count]; for (int i = 0; i < polygons.Count; i++) { Polygon2D poly = polygons[i]; combine[i].mesh = PolygonTriangulator2D.Triangulate(poly, UVScale, UVOffset, triangulation); combine[i].transform = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, 0), Vector3.one); } Mesh mesh = new Mesh(); mesh.CombineMeshes(combine); filter.sharedMesh = mesh; if (filter.sharedMesh == null) { UnityEngine.Object.Destroy(gameObject); } return(filter.sharedMesh); }
public Mesh GetMesh() { if (mesh == null) { mesh = PolygonTriangulator2D.Triangulate(Polygon2DList.CreateFromGameObject(gameObject)[0], Vector2.zero, Vector2.zero, PolygonTriangulator2D.Triangulation.Advanced); } return(mesh); }
public Mesh GetMesh() { if (mesh == null) { if (GetPolygon().pointsList.Count > 2) { mesh = PolygonTriangulator2D.Triangulate(GetPolygon(), Vector2.zero, Vector2.zero, PolygonTriangulator2D.Triangulation.Advanced); } } return(mesh); }
public EraseMesh GetMesh(Transform transformA, Transform transformB) { Polygon2D polygon = GetWorldShape().ToLocalSpace(transformA); polygon.ToOffsetItself(new Vector2D(transformA.position - transformB.position)); polygon.ToRotationItself(transformB.rotation.eulerAngles.z * -Mathf.Deg2Rad); polygon.ToScaleItself(new Vector2(1.0f / transformB.localScale.x, 1.0f / transformB.localScale.y)); Mesh mesh = PolygonTriangulator2D.Triangulate(polygon, Vector2.zero, Vector2.zero, PolygonTriangulator2D.Triangulation.Advanced); EraseMesh eraseMesh = new EraseMesh(); eraseMesh.mesh = mesh; return(eraseMesh); }
public Mesh GetMesh() { if (mesh == null) { if (GetPolygons().Count > 0) { if (GetPolygons()[0].pointsList.Count > 2) { // Triangulate Polygon List? mesh = PolygonTriangulator2D.Triangulate(GetPolygons()[0], Vector2.zero, Vector2.zero, PolygonTriangulator2D.Triangulation.Advanced); } } } return(mesh); }
public Mesh GetMesh_Collider(Transform transform) { if (mesh_collider == null) { if (GetPolygons_Collider_Local(transform).Count > 0) { if (GetPolygons_Collider_Local(transform)[0].pointsList.Count > 2) { // Triangulate Polygon List? mesh_collider = PolygonTriangulator2D.Triangulate(GetPolygons_Collider_Local(transform)[0], Vector2.zero, Vector2.zero, PolygonTriangulator2D.Triangulation.Advanced); } } } return(mesh_collider); }
public Mesh GetMesh() { if (mesh == null) { List <Polygon2D> polygons = Polygon2DList.CreateFromGameObject(gameObject); if (polygons.Count > 0) { mesh = PolygonTriangulator2D.Triangulate(polygons[0], Vector2.zero, Vector2.zero, PolygonTriangulator2D.Triangulation.Advanced); } else { Debug.Log("SmartLighting2D: LightingRoom2D object is missing Collider Component"); } } return(mesh); }
static public void GenerateMesh(GameObject gameObject, Polygon polygon, Vector2 UVScale) { if (gameObject.GetComponent <MeshRenderer>() == null) { gameObject.AddComponent <MeshRenderer>(); } MeshFilter filter = gameObject.GetComponent <MeshFilter> (); if (filter == null) { filter = gameObject.AddComponent <MeshFilter>() as MeshFilter; } filter.mesh = PolygonTriangulator2D.Triangulate(polygon, UVScale); }
public Mesh CreateMesh3D(GameObject gameObject, float z, Vector2 UVScale, Vector2 UVOffset, PolygonTriangulator2D.Triangulation triangulation) { if (gameObject.GetComponent <MeshRenderer>() == null) { gameObject.AddComponent <MeshRenderer>(); } MeshFilter filter = gameObject.GetComponent <MeshFilter> (); if (filter == null) { filter = gameObject.AddComponent <MeshFilter>() as MeshFilter; } filter.sharedMesh = PolygonTriangulator2D.Triangulate3D(this, z, UVScale, UVOffset, triangulation); if (filter.sharedMesh == null) { UnityEngine.Object.Destroy(gameObject); } return(filter.sharedMesh); }
public Mesh CreateMesh(Vector2 UVScale, Vector2 UVOffset, PolygonTriangulator2D.Triangulation triangulation = PolygonTriangulator2D.Triangulation.Advanced) { return(PolygonTriangulator2D.Triangulate(this, UVScale, UVOffset, triangulation)); }