Creating a convex MESH (not collider)

I need to create a mesh around a group of other meshes (not necessarily one).
As far as I can see, the simplest way would be to create a combined mesh (via script) of the meshes in question, add a Mesh Collider to the new mesh and make it Convex, then convert the convex colider to a mesh.

Now, I’m not even sure this is possible as I have found no references to anything like this on Google…

More details:
I basically need a method to procedurally generate the Hull of a spaceship around it’s hallways and rooms.

I Found!

  1. go to https://miconvexhull.codeplex.com/

  2. download and put “MIConvexHull” to unity project

  3. Add class:

    public class Vertex : IVertex
    {
    public double Position { get; set; }
    public Vertex(double x, double y, double z)
    {
    Position = new double[3] { x, y, z };
    }
    public Vertex (Vector3 ver)
    {
    Position = new double[3] { ver.x, ver.y, ver.z };
    }
    public Vector3 ToVec()
    {
    return new Vector3((float)Position[0], (float)Position[1], (float)Position[2]);
    }
    }

  4. Use It:

     void CreateSelection(IEnumerable<Vector3> points)
     {
         selection = new GameObject("Selection");
         MeshFilter meshFilter = (MeshFilter)selection.AddComponent(typeof(MeshFilter));
    
         meshFilter.mesh = CreateMesh(points);
    
         MeshRenderer renderer = selection.AddComponent(typeof(MeshRenderer)) as MeshRenderer;
         renderer.material.shader = Shader.Find("Particles/Additive");
         Texture2D tex = new Texture2D(1, 1);
         tex.SetPixel(0, 0, Color.green);
         tex.Apply();
         renderer.material.mainTexture = tex;
         renderer.material.color = Color.green;
     }
    
     Mesh CreateMesh(IEnumerable<Vector3> stars)
     {
         Mesh m = new Mesh();
         m.name = "ScriptedMesh";
         List<int> triangles = new List<int>();
    
         var vertices = stars.Select(x => new Vertex(x)).ToList();
    
         var result = MIConvexHull.ConvexHull.Create(vertices);
         m.vertices = result.Points.Select(x => x.ToVec()).ToArray();
         var xxx = result.Points.ToList();
    
         foreach(var face in result.Faces)
         {
             triangles.Add(xxx.IndexOf(face.Vertices[0]));
             triangles.Add(xxx.IndexOf(face.Vertices[1]));
             triangles.Add(xxx.IndexOf(face.Vertices[2]));
         }
    
         m.triangles = triangles.ToArray();
         m.RecalculateNormals();
         return m;
     }
    

I did it, just delete Triangulation.cs and Triangulation Folder