🔥 Что такое GameObject в Unity? | Часть 1
GameObject — это фундаментальный строительный блок любой сцены в Unity.
📌 Проще говоря: всё, что вы видите в сцене (камеры, 3D-объекты, UI-элементы) — это GameObject'ы!
📦 GameObject = Контейнер для компонентов
Сам по себе GameObject — просто "пустая коробка". Его функциональность определяют компоненты, которые к нему прикреплены:
• Transform — позиция/размер/поворот
• MeshRenderer — отображение 3D-модели
• Collider — обработка столкновений
• И любые ваши скрипты!
🔧 Ключевые особенности
1. Наследование
• Происходит от класса UnityEngine.Object (не путать с System.Object!).
• Даёт доступ к методам вроде Destroy(), Find(), Instantiate().
2. Основные свойства
• name — Имя объекта (можно менять в runtime).
• tag — Метка для быстрого поиска/фильтрации.
• activeSelf — Локальная активность (SetActive(true/false)).
• activeInHierarchy — Учитывает активность родителей.
• transform — Ссылка на компонент Transform (есть у всех GameObject'ов).
3. Оптимизация
• isStatic — для "запечённого" освещения и других оптимизаций.
• layer — управление рендерингом и физикой.
🚀 Что разберём в следующих постах?
• Методы создания и удаления объектов
• Управление компонентами объектов.
• Поиск объектов на сцене.
GameObject — это фундаментальный строительный блок любой сцены в Unity.
📌 Проще говоря: всё, что вы видите в сцене (камеры, 3D-объекты, UI-элементы) — это GameObject'ы!
📦 GameObject = Контейнер для компонентов
Сам по себе GameObject — просто "пустая коробка". Его функциональность определяют компоненты, которые к нему прикреплены:
• Transform — позиция/размер/поворот
• MeshRenderer — отображение 3D-модели
• Collider — обработка столкновений
• И любые ваши скрипты!
🔧 Ключевые особенности
1. Наследование
• Происходит от класса UnityEngine.Object (не путать с System.Object!).
• Даёт доступ к методам вроде Destroy(), Find(), Instantiate().
2. Основные свойства
• name — Имя объекта (можно менять в runtime).
• tag — Метка для быстрого поиска/фильтрации.
• activeSelf — Локальная активность (SetActive(true/false)).
• activeInHierarchy — Учитывает активность родителей.
• transform — Ссылка на компонент Transform (есть у всех GameObject'ов).
3. Оптимизация
• isStatic — для "запечённого" освещения и других оптимизаций.
• layer — управление рендерингом и физикой.
🚀 Что разберём в следующих постах?
• Методы создания и удаления объектов
• Управление компонентами объектов.
• Поиск объектов на сцене.
🔧 Создание и удаление GameObject в Unity | Часть 2
GameObject — как Lego-деталь: можно собрать новую, скопировать существующую или даже разобрать на части. Сегодня разберём все способы работы с объектами!
🛠 3 способа создания объектов
1. Через конструкторы
2. Клонирование (Instantiate)
Основной метод для работы с префабами:
3. Примитивы (кубы, сферы)
Доступные примитивы:
▫️ Cube ▫️ Sphere ▫️ Cylinder
▫️ Capsule ▫️ Plane ▫️ Quad
💥 Уничтожение объектов
⚠️ Важно:
DestroyImmediate может нарушить порядок выполнения кода. Используйте только в особых случаях!
📌 Итог
new GameObject() — Для пустых "контейнеров"
Instantiate() — Для префабов и копий
CreatePrimitive() — Для быстрого прототипирования
Destroy() — Для безопасного удаления
💡 Пример из практики:
🔜 В следующей части:
Разберём методы работы с компонентами!
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 секунды
🔜 В следующей части:
Разберём методы работы с компонентами!
