Базовые концепции Unity: игровые объекты
Игровой объект (он же GameObject) – один из базовых компонентов, из которых строится игра. Говоря о GameObject, мы подразумеваем наблюдаемые в игре сущности, причем как физические (персонаж, дерево, оружие, взрыв, пуля, грунт и т. д.), так и метафизические (контроллер мультиплеерного режима, менеджер снаряжения и пр.).
Каждый физический игровой объект имеет значения поворота и положения. При этом допускается вложение игровых объектов друг в друга. Вышеупомянутые поворот и положение каждого объекта отсчитываются относительно его родительского объекта. Объект, который размещен непосредственно в сцене, позиционируют относительно «мировых координат».
На картинке ниже можно увидеть группу объектов, совместно вложенных в сцене. Объекты объединены в пустом объекте “Interior_Props”, что сделано в целях структурирования:
Существует масса причин, по которым вам может потребоваться вложение объектов. К примеру, вы можете принять решение, что в целях структуризации будет целесообразным поместить вашу окружающую среду (к примеру, отдельные элементы, из которых состоит деревня либо город) в пустой родительский объект. Таким способом вы можете представить вашу окружающую среду в сжатом виде, чтобы потом вместе со всем представлением сцены перенести ее куда надо при разработке игры.
На следующей картинке видна группа объектов, которые вложены в объект «игрок». Отображаются оружие игрока, его аватарка и разные UI-элементы вокруг игрока.
Вложение объектов имеет значение и с функциональной точки зрения. К примеру, в объекте «Car» может быть код, который управляет и скоростью, и поворотами машины в целом. Однако у него могут быть отдельные дочерние объекты, которые представляют 4 колеса (все колеса будут крутиться независимо), автомобильные окна, корпус машины и т. д. В случае перемещения родительского объекта «Car», станут двигаться и его дочерние объекты, причем они будут сохранять ориентацию как относительно родительского объекта, так и относительно друг друга. Допустим, можно запланировать, что персонаж открывает дверцу, причем это действие будет касаться именно дверцы, а не всего автомобиля.
По материалам статьи «Basic Concepts in Unity for Software Engineers».