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); }