public static float getShipPartVolume(ShipPart shipPart)
    {
        List <GameObject> gameObjectList = new List <GameObject>();

        gameObjectList.Add(shipPart.gameObject);
        for (int i = 0; i < shipPart.gameObject.transform.childCount; i++)
        {
            gameObjectList.Add(shipPart.gameObject.transform.GetChild(i).gameObject);
            gameObjectList.AddRange(getChildrenOfThisGameObject(shipPart.gameObject.transform.GetChild(i).gameObject));
        }

        GMS.fileWriteLn("MeshSizes", gameObjectList.Count + "");
        GMS.fileWriteLn("MeshSizes", "Master: " + shipPart.gameObject.name);
        float   volumeOfMesh        = 0;
        float   volumeOfCollider    = 0;
        float   volumeOfColliderSum = 0;
        Vector3 dimensions          = Vector3.zero;

        for (int i = 0; i < gameObjectList.Count; i++)
        {
            volumeOfMesh     = 0;
            volumeOfCollider = 0;
            dimensions       = Vector3.zero;

            if (gameObjectList[i].GetComponent <MeshFilter>())
            {
                volumeOfMesh = GMS.VolumeOfMesh(gameObjectList[i].GetComponent <MeshFilter>().mesh);
                dimensions   = gameObjectList[i].transform.lossyScale * Mathf.Pow(volumeOfMesh, 1f / 3f);
            }

            GMS.fileWrite("MeshSizes", "name: " + gameObjectList[i].name + "; ");
            GMS.fileWrite("MeshSizes", "parents: " + GMS.getParentsOfThisGameObjectStr(gameObjectList[i]) + "; ");
            GMS.fileWrite("MeshSizes", "volumeOfMesh = " + volumeOfMesh + "u; ");
            GMS.fileWrite("MeshSizes", "dimensions = " + dimensions + "u; ");
            GMS.fileWrite("MeshSizes", "dimensionsMeters = " + ObjectInSpace.unitsToMeters(dimensions) + "m; ");
            GMS.fileWrite("MeshSizes", "dimensionsMetersVolume = " + (ObjectInSpace.unitsToMeters(dimensions).x *ObjectInSpace.unitsToMeters(dimensions).y *ObjectInSpace.unitsToMeters(dimensions).z) + "m^3; ");
            GMS.fileWrite("MeshSizes", "volumeOfCollider = " + volumeOfCollider + "u; ");
            GMS.fileWriteLn("MeshSizes", " ");
        }

        volumeOfColliderSum = Mathf.Round(volumeOfColliderSum);

        GMS.fileWrite("MeshSizes", "Master: " + shipPart.gameObject.name + ", ");
        GMS.fileWrite("MeshSizes", "volumeOfColliderSum = " + volumeOfColliderSum + "u; ");
        GMS.fileWrite("MeshSizes", "volumeOfColliderSum = " + ObjectInSpace.unitsToMetersCubic(volumeOfColliderSum) + "m^3; ");
        GMS.fileWriteLn("MeshSizes", " ");

        return(0f);
    }