PolyCollider.generate2DMeshCollider C# (CSharp) Method

generate2DMeshCollider() private method

private generate2DMeshCollider ( ) : void
return void
	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);
	}