public static GetRenderableBoundsRecurse ( |
||
bounds | ||
go | ||
return | void |
public static void GetRenderableBoundsRecurse(ref Bounds bounds, GameObject go)
{
MeshRenderer component = go.GetComponent(typeof(MeshRenderer)) as MeshRenderer;
MeshFilter filter = go.GetComponent(typeof(MeshFilter)) as MeshFilter;
if (((component != null) && (filter != null)) && (filter.sharedMesh != null))
{
if (bounds.extents == Vector3.zero)
{
bounds = component.bounds;
}
else
{
bounds.Encapsulate(component.bounds);
}
}
SkinnedMeshRenderer renderer2 = go.GetComponent(typeof(SkinnedMeshRenderer)) as SkinnedMeshRenderer;
if ((renderer2 != null) && (renderer2.sharedMesh != null))
{
if (bounds.extents == Vector3.zero)
{
bounds = renderer2.bounds;
}
else
{
bounds.Encapsulate(renderer2.bounds);
}
}
SpriteRenderer renderer3 = go.GetComponent(typeof(SpriteRenderer)) as SpriteRenderer;
if ((renderer3 != null) && (renderer3.sprite != null))
{
if (bounds.extents == Vector3.zero)
{
bounds = renderer3.bounds;
}
else
{
bounds.Encapsulate(renderer3.bounds);
}
}
IEnumerator enumerator = go.transform.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Transform current = (Transform) enumerator.Current;
GetRenderableBoundsRecurse(ref bounds, current.gameObject);
}
}
finally
{
IDisposable disposable = enumerator as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}
void SetupBounds(GameObject go) { m_IsValid = go != null && go != GetGenericAnimationFallback(); if (go != null) { m_PreviewInstance = EditorUtility.InstantiateForAnimatorPreview(go); previewUtility.AddSingleGO(m_PreviewInstance); Bounds bounds = new Bounds(m_PreviewInstance.transform.position, Vector3.zero); GameObjectInspector.GetRenderableBoundsRecurse(ref bounds, m_PreviewInstance); m_BoundingVolumeScale = Mathf.Max(bounds.size.x, Mathf.Max(bounds.size.y, bounds.size.z)); if (Animator && Animator.isHuman) { m_AvatarScale = m_ZoomFactor = Animator.humanScale; } else { m_AvatarScale = m_ZoomFactor = m_BoundingVolumeScale / 2; } } }