Unity, почему класс transform содержит метод получения ребенка?

Вот по этому коду вопрос:

using System.Collections.Specialized;
using System.Security.Cryptography;
using UnityEngine;

public class ExplodeCube : MonoBehaviour
{
    private bool _collisionSet;
    private void OnCollisionEnter(Collision collision)
    {
        if(collision.gameObject.tag == "Cube" && _collisionSet == false)
        {
            for(int i = collision.gameObject.transform.childCount - 1; i >= 0; i--)
            {
                Transform child = collision.transform.GetChild(i);
                child.gameObject.AddComponent<Rigidbody>();
                child.gameObject.GetComponent<Rigidbody>().AddExplosionForce(70, Vector3.up, 5);
                child.SetParent(null);
            }
            Destroy(collision.gameObject);
            _collisionSet = true;
        }
    }
}

Судя по этой строчке int i = collision.gameObject.transform.childCount - 1; класс transform принадлежит классу collision и gameObject, им обоим.
Но а вот тут уже непонятно Transform child = collision.transform.GetChild(i); во первых, почему класс transform содержит даже метод получения ребенка (дочернего элемента), этот класс как я уже знаю, САМЫЕ ПРОСТЫЕ КООРДИНАТЫ, которые задают расположение одного элемента!!! Это не в нем должны находится дочерние элементы, а он находится в дочерних элементах!!! Откуда мы из такого маленького класса берем дочерние элементы!? Они что там хранятся?! А во вторых, что это за синтаксис странный такой, что за новый класс Transform, который представляет из себя целый объект, то есть ребенка? Судя по названию он те же самые координаты, просто с большой буквы.

Координаты это Vector3.

А в трансформе много чего
Unity - Scripting API: Transform

Родителей/детей туда тоже запихнули почему-то. :soidet:

Why is parent on transform and not gameObject? - Unity Answers

1 лайк