Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Transform используется для хранения GameObjectфундаментального объекта в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Просматривать в Словарь
положение, поворот, масштаб и родительское состояние и, таким образом, очень важный. К GameObject всегда будет присоединен компонент Transform — невозможно удалить Transform или создать GameObject без него.

Компонент преобразования

Компонент Transform определяет Положение, Поворот и Масштаб каждого объекта в классе sceneСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
. У каждого GameObject есть Transform.

Свойства

Свойства: Функции:
Position Положение преобразования в координатах X, Y и Z.
Rotation Вращение Transform вокруг осей X, Y и Z, измеряемое в градусах.
Scale Масштаб преобразования по осям X, Y и Z. Значение «1» — исходный размер (размер, с которым был импортирован объект).

Значения положения, поворота и масштаба преобразования измеряются относительно родительского элемента преобразования. Если у преобразования нет родителя, свойства измеряются в мировом пространстве.

Редактирование преобразований

Преобразования выполняются в 3D-пространстве по осям X, Y и Z или в 2D-пространстве только по осям X и Y. В Unity эти оси представлены красным, зеленым и синим цветами соответственно.

Преобразование, показывающее цветовое кодирование осей
Преобразование, показывающее цветовое кодирование осей

Преобразование можно редактировать в Вид сценыИнтерактивный вид создаваемого вами мира. Вы используете Scene View для выбора и размещения пейзажей, персонажей, камер, источников света и всех других типов игровых объектов. Дополнительная информация
См. в Словарь
или изменив его свойства в ИнспекторОкно Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и редактировать значения. Подробнее
См. в Словарь
. В сцене вы можете изменять Transforms с помощью инструментов Move, Rotate и Scale. Эти инструменты расположены в верхнем левом углу редактора Unity.

Инструменты «Просмотр», «Перенос», «Поворот» и «Масштаб»
Инструменты «Просмотр», «Перенос», «Поворот» и «Масштаб»

Инструменты можно использовать для любого объекта сцены. При нажатии на объект вы увидите инструмент gizmoГрафическое наложение, связанное с GameObject в сцене и отображаемое в вид сцены. Встроенные инструменты сцены, такие как инструмент перемещения, представляют собой гизмо, и вы можете создавать собственные гизмо, используя текстуры или сценарии. Некоторые гизмо отрисовываются только при выборе игрового объекта, в то время как другие гизмо отрисовываются редактором независимо от того, какие игровые объекты выбраны. Подробнее
See in Словарь
появляются внутри него. Внешний вид гизмо зависит от того, какой инструмент выбран.

Transform gizmo
Transform gizmo

Когда вы щелкнете и перетащите одну из трех осей гизмо, вы заметите, что ее цвет изменится на желтый. Когда вы перетаскиваете мышь, вы увидите, как объект перемещается, вращается или масштабируется вдоль выбранной оси. Когда вы отпустите кнопку мыши, ось останется выбранной.

Преобразование, показывающее выбранную (желтую) ось X
Преобразование, показывающее выбранную (желтую) ось X

В режиме преобразования также есть дополнительная опция, позволяющая привязать движение к определенной плоскости (т. е. разрешить перетаскивание по двум осям, сохраняя при этом третью без изменений). Три маленьких цветных квадрата вокруг центра гизмо перевода активируют блокировку для каждой плоскости; цвета соответствуют оси, которая будет заблокирована при щелчке по квадрату (например, синий блокирует ось Z).

Воспитание детей

Родительские обязанности — одна из самых важных концепций, которые необходимо понимать при использовании Unity. Когда GameObject является родителемобъектом, который содержит дочерние объекты в иерархии. Когда GameObject является Родителем другого GameObject, Дочерний GameObject будет перемещаться, вращаться и масштабироваться точно так же, как и его Родитель. Вы можете думать о воспитании детей как об отношениях между вашими руками и вашим телом; всякий раз, когда ваше тело двигается, ваши руки также двигаются вместе с ним. Подробнее
Посмотреть в Словарь
другого игрового объекта, дочернего элемента GameObject будет двигаться, вращаться и масштабироваться точно так же, как и его Parent. Вы можете думать о воспитании детей как об отношениях между вашими руками и вашим телом; всякий раз, когда ваше тело двигается, ваши руки также двигаются вместе с ним. Дочерние объекты также могут иметь своих собственных дочерних элементов и так далее. Таким образом, ваши руки могут рассматриваться как «дети» ваших рук, и тогда каждая рука имеет несколько пальцев и т. д. Любой объект может иметь несколько потомков, но только одного родителя. Эти несколько уровней отношений родитель-потомок образуют иерархию преобразования. Объект на самом верху иерархии (то есть единственный объект в иерархии, не имеющий родителя) называется корневым.

Вы можете создать родительский элемент, перетащив любой игровой объект из Просмотра иерархии на другой. Это создаст отношения «родитель-потомок» между двумя игровыми объектами.

Пример иерархии «родитель-потомок». Игровые объекты со стрелками слева от их имен являются родителями.
Пример иерархии «родитель-потомок». Игровые объекты со стрелками слева от их имен являются родителями.

Обратите внимание, что значения преобразования в Инспекторе для любого дочернего игрового объекта отображаются относительно значений преобразования родительского объекта. Эти значения называются локальными координатами. Возвращаясь к аналогии с телом и руками, положение вашего тела может измениться, когда вы идете, но ваши руки все равно будут прикреплены в том же относительном положении. Для построения сцены обычно достаточно работать с локальными координатами дочерних объектов, но в игровом процессе часто бывает полезно найти их точное положение в мировом пространстве или глобальные координаты. API сценариев для компонента Transform имеет отдельные свойства для локального и глобального положения, поворота и масштаба, а также позволяет преобразовать любую точку между локальными и глобальными координатами.

Ограничения при неравномерном масштабировании

Неравномерное масштабирование — это когда Scale в Transform имеет разные значения для x, y и z; например (2, 4, 2). Напротив, равномерное масштабирование имеет одно и то же значение для x, y и z; например (3, 3, 3). Неравномерное масштабирование может быть полезно в некоторых конкретных случаях, но оно вносит несколько странностей, которые не возникают при равномерном масштабировании:-

  • Некоторые компоненты не полностью поддерживают неравномерное масштабирование. Например, некоторые компоненты имеют круглый или сферический элемент, определяемый свойством radius, среди них Sphere Collider Компонент коллайдера в форме сферы, который обрабатывает столкновения для игровых объектов, таких как мячи или другие вещи, которые можно приблизительно представить как сферу для целей физики. Подробнее
    См. в Словарь
    , Capsule ColliderКомпонент коллайдера в форме капсулы, который обрабатывает коллизии игровых объектов, таких как бочки и конечности персонажей. Подробнее
    См. в Словарь
    , Light и Источник аудиоКомпонент, который воспроизводит аудиоклип в сцене для слушателя звука или через аудиомикшер. Подробнее
    См. в Словарь
    . В подобных случаях круглая форма не станет эллиптической при неравномерном масштабировании, как можно было бы ожидать, а просто останется круглой.
  • Если дочерний объект имеет родительский объект с неравномерным масштабом и повернут относительно этого родительского объекта, он может выглядеть перекошенным или «срезанным». Есть компоненты, которые поддерживают простое неравномерное масштабирование, но не работают корректно при таком перекосе. Например, скошенный Box Colliderкомпонент коллайдера в форме куба, который обрабатывает коллизии игровых объектов, таких как игральные кости и кубики льда. Подробнее
    См. в Словарь
    не будет соответствовать форме отображаемого meshОсновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
    Точно смотрите в Словарь
    .
  • Из соображений производительности дочерний объект родительского объекта с неравномерным масштабом не будет автоматически обновляться при повороте. В результате может показаться, что форма дочернего элемента резко меняется, когда масштаб в конечном итоге обновляется, например, если дочерний объект отсоединяется от родительского.

Важность масштаба

Масштаб преобразования определяет разницу между размером сетки в приложении для моделирования и размером этой сетки в Unity. Размер сетки в Unity (и, следовательно, масштаб преобразования) очень важен, особенно во время моделирования физики. По умолчанию используется физический движокСистема, моделирующая аспекты физических систем, чтобы объекты могли правильно ускоряться и подвергаться воздействию столкновений, гравитации и другие силы. Подробнее
См. в Словарь
предполагает, что одна единица в мировом пространстве соответствует одному метру. Если объект очень большой, может показаться, что он падает в «замедленной съемке»; симуляция на самом деле правильная, поскольку фактически вы наблюдаете, как очень большой объект падает с большого расстояния.

Есть три фактора, которые могут повлиять на масштаб вашего объекта:

  • Размер сетки в приложении для 3D-моделирования.
  • Настройка Коэффициент масштабирования сетки в Настройках импорта объекта.
  • Значения Масштаб вашего компонента преобразования.

В идеале не следует настраивать Масштаб объекта в компоненте преобразования. Лучший вариант — создавать свои модели в реальном масштабе, чтобы вам не пришлось менять масштаб преобразования. Следующим лучшим вариантом является настройка масштаба импорта вашей сетки в Настройки импорта для вашей отдельной сетки. Определенные оптимизации выполняются в зависимости от размера импорта, и создание экземпляра объекта с настроенным значением масштаба может снизить производительность. Дополнительные сведения см. в разделе об оптимизации масштаба на странице с описанием компонентов Rigidbody.

Советы по работе с преобразованиями

  • При родительском преобразовании полезно установить местоположение родительского элемента <0,0,0> перед добавлением дочернего элемента. Это означает, что локальные координаты дочернего элемента будут такими же, как и глобальные координаты, что упрощает определение правильного положения дочернего элемента.
  • Если вы используете RigidbodiesКомпонент, позволяющий воздействовать на GameObject смоделированной гравитацией и другими силами. Подробнее
    См. в Словарь
    моделирование физики, затем обязательно прочитайте о свойстве Scale на справочная страница компонента Rigidbody.
  • Вы можете изменить цвета осей преобразования (и других элементов пользовательского интерфейса) в настройках (Меню: Unity > Настройки, а затем выберите панель Цвета и клавиши). .
  • Изменение масштаба влияет на положение дочерних преобразований. Например, масштабирование родителя до (0,0,0) приведет к размещению всех дочерних элементов в (0,0,0) относительно родителя.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3