public void generate2DMeshCollider() {
List<Vector2> vertices2D = new List<Vector2> ();
PolyCollider polyCollider = GetComponent<PolyCollider> ();
if (polyCollider == null)
return;
foreach (Vector2 point in polyCollider._points) {
vertices2D.Add(point);
}
// Use the triangulator to get indices for creating triangles
Triangulator tr = new Triangulator(vertices2D.ToArray());
int[] indices = tr.Triangulate();
// Create the Vector3 vertices
Vector3[] vertices = new Vector3[vertices2D.Count];
for (int i=0; i<vertices.Length; i++) {
vertices[i] = new Vector3(vertices2D[i].x, 0.0f, vertices2D[i].y);
}
// Create the mesh
Mesh msh = new Mesh();
msh.vertices = vertices;
msh.triangles = indices;
msh.RecalculateNormals();
msh.RecalculateBounds();
// Set up game object with mesh;
MeshCollider meshCollider = gameObject.AddComponent<MeshCollider> ();
meshCollider.sharedMesh = msh;
// Add an outline drawer so the object is always visible in the editor
gameObject.AddComponent<OutlineDrawer> ();
//Add the room logic
gameObject.AddComponent<RoomOccluderVolume> ();
//Remoce this script
DestroyImmediate (this);
}