Нечто подобное должно работать.Он перебирает все дочерние объекты выбранного вами объекта, затем находит границы рендеринга этих объектов и обновляет минимальное и максимальное значения.В конце функции Start () переменные min и max содержат координаты углов поля, определяющего границы.
public class NewBehaviourScript : MonoBehaviour
{
void Start ()
{
Vector2 min = new Vector2 (0, 0);
Vector2 max = new Vector2 (0, 0);
GetParentBounds (gameObject, out min, out max);
Debug.Log (min);
Debug.Log (max);
}
void GetParentBounds (GameObject GO, out Vector2 pMin, out Vector2 pMax)
{
Transform[] ts = GO.GetComponentsInChildren<Transform> ();
Vector2 parentMin = new Vector2 (float.MaxValue, float.MaxValue);
Vector2 parentMax = new Vector2 (float.MinValue, float.MinValue);
foreach (Transform t in ts) {
Renderer rend = t.GetComponent<Renderer> ();
if (rend != null) {
Vector2 min = rend.bounds.min;
Vector2 max = rend.bounds.max;
Debug.Log (string.Format ("[{0}, {1}], [{2}, {3}]", min.x, min.y, max.x, max.y));
parentMin.x = Mathf.Min (parentMin.x, min.x);
parentMin.y = Mathf.Min (parentMin.y, min.y);
parentMax.x = Mathf.Max (parentMax.x, max.x);
parentMax.y = Mathf.Max (parentMax.y, max.y);
}
}
pMin = parentMin;
pMax = parentMax;
}
}