using UnityEngine;
public static class BoundsExtensions
{
public static Bounds GetMaxBounds(this GameObject obj)
{
var bounds = new Bounds();
if (obj != null)
{
var renders = obj.GetComponentsInChildren<Renderer>();
if (renders != null)
{
var boundscenter = Vector3.zero;
foreach (var item in renders)
boundscenter += item.bounds.center;
if (obj.transform.childCount > 0)
boundscenter /= obj.transform.childCount;
bounds = new Bounds(boundscenter, Vector3.zero);
foreach (var item in renders)
bounds.Encapsulate(item.bounds);
}
}
return bounds;
}
}
调用方式:
Bounds m_Bounds = gameObject.GetMaxBounds();