1_Объекты и компоненты

Урок 1 : Объекты и компоненты

О чём этот урок

Работа с GameObject, компонентами и системой Transform. Практика закрепляет создание иерархии объектов, управление позицией и вращением, а также написание extension-методов для компонентов.


Теория

Вопросы для самопроверки

  1. Что такое GameObject в Unity? Как можно взаимодействовать с ним через код? Назовите основные методы (Создать, включить, выключить, уничтожить) и свойства.
  2. Что такое иерархия объектов? Как быстро найти на сцене объект, который выбран в окне Hierarchy?
  3. Что такое child и parent объекты?
  4. Какие есть виды примитивов трёхмерных объектов?
  5. Что такое Component и MonoBehaviour в Unity? Как получить или добавить компонент через код?
  6. Как из MonoBehaviour получить объект, на котором он установлен?
  7. Что такое Transform Component? Перечислите три его основных свойства и типы данных, связанные с этими свойствами.
  8. Какими методами можно менять позицию и вращение объекта через Transform?
  9. Как расположены оси системы координат (X, Y, Z) и куда они смотрят по умолчанию?
  10. Чем локальные координаты отличаются от глобальных и как их переключать?
  11. Почему вычисления, связанные с физикой и движением, следует помещать в FixedUpdate(), а не в Update()?
  12. Какие есть способы найти объект на сцене?


Практика

Как выполнять задания

Создайте новую сцену для выполнения заданий. Организуйте иерархию объектов по смыслу.

Задания

Задание 1.

Создайте новую сцену. Сделайте иерархию объектов с несколькими глобальными хранилищами объектов (пустые объекты). Назовите их UI, LOGIC, ENVIRONMENT, DYNAMIC.

Задание 2.

Добавьте в ENVIRONMENT стены, положите их в Walls. И пол из нескольких Plane разной формы, его положите в Floor.

Задание 3.

Создайте объект, который будет равномерно вращаться.

Задание 4.

Создайте объект, который циклично перемещается в заданную позицию и обратно.

Задание 5.

Задайте позицию для движущегося объекта через Transform и подвигайте трансформ цели во время игры.

Задание 6.

** Создайте статический класс ComponentsExtension, содержащий методы:

  • GetOrAddComponent - возвращает компонент, добавляет его, если отсутствует.
  • TryGetComponentInChildren - возвращает bool и компонент через out, если он есть на child объектах.
  • SetName - меняет имя объекта.

Пример сигнатуры метода: public static T GetOrAddComponent<T>(this GameObject go) where T : Component

Задание 7.

* Создайте объект, который циклично движется по нескольким заданным точкам и начинает вращаться после достижения последней точки в первый раз. Сделайте вращение через добавление компонента.


📋 Вернуться к теории урока 1