Skip to content

Commit f7dc37e

Browse files
committed
code review fixes
1 parent 1199616 commit f7dc37e

File tree

1 file changed

+32
-19
lines changed

1 file changed

+32
-19
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -694,37 +694,50 @@ public static HashSet<GameObject> RemoveRedundantObjects(IEnumerable<UnityEngine
694694

695695
/// <summary>
696696
/// Recursively go through the hierarchy, adding up the bounding box centers
697-
/// of all the children, to help find the center of all selected objects.
697+
/// of all the children, return number of transforms recursed.
698698
/// </summary>
699699
/// <returns>The number of GameObjects in hierarchy starting at t.</returns>
700700
/// <param name="t">Transform.</param>
701-
/// <param name="centerAverage">Sum of all the bounding box centers in hierarchy.</param>
702-
private int FindCenterRecursive(Transform t, ref Vector3 centerAverage)
701+
/// <param name="centerSum">Sum of all the bounding box centers in hierarchy.</param>
702+
private int GetBoundingBoxCentersSum(Transform t, ref Vector3 centerSum)
703703
{
704-
var renderer = t.GetComponent <Renderer>();
705-
if (renderer) {
706-
centerAverage += renderer.bounds.center;
704+
var bounds = GetBounds (t);
705+
if (bounds.HasValue) {
706+
centerSum += bounds.Value.center;
707707
} else {
708-
var mesh = t.GetComponent <Mesh> ();
709-
if (mesh) {
710-
centerAverage += mesh.bounds.center;
711-
} else {
712-
var collider = t.GetComponent <Collider> ();
713-
if (collider) {
714-
centerAverage += collider.bounds.center;
715-
} else {
716-
centerAverage += t.transform.position;
717-
}
718-
}
708+
centerSum += t.transform.position;
719709
}
720710

721711
int count = 1;
722712
foreach (Transform child in t) {
723-
count += FindCenterRecursive (child, ref centerAverage);
713+
count += GetBoundingBoxCentersSum (child, ref centerSum);
724714
}
725715
return count;
726716
}
727717

718+
/// <summary>
719+
/// Gets the bounds of a transform.
720+
/// Looks first at the Renderer, then Mesh, then Collider.
721+
/// </summary>
722+
/// <returns>The bounds, or null if not found.</returns>
723+
/// <param name="t">Transform.</param>
724+
private Bounds? GetBounds(Transform t)
725+
{
726+
var renderer = t.GetComponent<Renderer> ();
727+
if (renderer) {
728+
return renderer.bounds;
729+
}
730+
var mesh = t.GetComponent<Mesh> ();
731+
if (mesh) {
732+
return mesh.bounds;
733+
}
734+
var collider = t.GetComponent<Collider> ();
735+
if (collider) {
736+
return collider.bounds;
737+
}
738+
return null;
739+
}
740+
728741
/// <summary>
729742
/// Finds the center of a group of GameObjects.
730743
/// </summary>
@@ -735,7 +748,7 @@ private Vector3 FindCenter(IEnumerable<GameObject> gameObjects)
735748
Vector3 average = Vector3.zero;
736749
int count = 0;
737750
foreach (var go in gameObjects) {
738-
count += FindCenterRecursive (go.transform, ref average);
751+
count += GetBoundingBoxCentersSum (go.transform, ref average);
739752
}
740753
return average / count;
741754
}

0 commit comments

Comments
 (0)