Вот по этому коду вопрос:
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, который представляет из себя целый объект, то есть ребенка? Судя по названию он те же самые координаты, просто с большой буквы.