GameObject — как Lego-деталь: можно собрать новую, скопировать существующую или даже разобрать на части. Сегодня разберём все способы работы с объектами!
🛠 3 способа создания объектов
1. Через конструкторы
// 1. Просто пустой объект
GameObject emptyGO = new GameObject();
// 2. С именем (удобно для поиска!)
GameObject namedGO = new GameObject("МойОбъект");
// 3. С готовыми компонентами
GameObject audioGO = new GameObject("Аудио", typeof(AudioSource));
2. Клонирование (Instantiate)
Основной метод для работы с префабами:
public GameObject prefab; // Ссылка на префаб
void Start() {
// Клонируем с позицией и поворотом
GameObject clone = Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity);
}
3. Примитивы (кубы, сферы)
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
Доступные примитивы:
▫️ Cube ▫️ Sphere ▫️ Cylinder
▫️ Capsule ▫️ Plane ▫️ Quad
💥 Уничтожение объектов
// 1. Обычное удаление (в конце кадра)
Destroy(gameObject);
// 2. С задержкой (например, для эффектов)
Destroy(gameObject, 3f); // Через 3 секунды
// 3. Мгновенное удаление (осторожно!)
DestroyImmediate(gameObject);
⚠️ Важно:
DestroyImmediate может нарушить порядок выполнения кода. Используйте только в особых случаях!
📌 Итог
new GameObject() — Для пустых "контейнеров"
Instantiate() — Для префабов и копий
CreatePrimitive() — Для быстрого прототипирования
Destroy() — Для безопасного удаления
💡 Пример из практики:
// Создаём временный эффект
GameObject effect = Instantiate(explosionPrefab);
Destroy(effect, 2f); // Автоудаление через 2 секунды
🔜 В следующей части:
Разберём методы работы с компонентами!