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

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

Unity поддерживает следующие типы компонентов ограничения:

  • Цель: повернуть ограниченный игровой объект лицом к связанному игровому объекту.
  • Просмотреть: повернуть привязанный игровой объект к связанному игровому объекту (упрощенное ограничение цели).
  • Родительский элемент: перемещение и вращение ограниченного игрового объекта с помощью связанного игрового объекта.
  • Позиция: переместите ограниченный игровой объект так же, как связанный игровой объект.
  • Вращение: вращайте ограниченный игровой объект так же, как связанный игровой объект.
  • Масштаб: Масштабирование игрового объекта с ограничениями аналогично связанному игровому объекту.

Связывание с игровыми объектами

Используйте список Sources в компоненте Constraint, чтобы указать игровые объекты для ссылки.

Например, чтобы прицел следовал за космическим кораблем игрока в 2D-шутере, добавьте к прицелу компонент Ограничение положения. Чтобы связать перекрестие с космическим кораблем, перейдите к компоненту Ограничение положения и добавьте игровой объект космического корабля в список Источники. Когда игрок перемещает космический корабль, перекрестие следует за ним.

Ограничение положения для перекрестия. Прицел следует за космическим кораблем игрока (красный).
Ограничение положения для перекрестия. Прицел следует за космическим кораблем игрока (красный)

Ограничение может быть связано с несколькими исходными игровыми объектами. В этом случае Constraint использует усредненное положение, поворот или масштаб своих исходных объектов GameObject. Например, чтобы направить источник света на группу игровых объектов, добавьте к игровому объекту источника света компонент Ограничение цели. Затем добавьте игровые объекты для освещения в список Источники. Ограничение цели ориентирует свет так, чтобы он смотрел на усредненное положение его источников.

Unity оценивает исходные игровые объекты в порядке их появления в списке Источники. Порядок не влияет на Положение и Ограничения масштаба. Однако порядок влияет на родительскийобъект, содержащий дочерние объекты в иерархии. Когда GameObject является Родителем другого GameObject, Дочерний GameObject будет перемещаться, вращаться и масштабироваться точно так же, как и его Родитель. Вы можете думать о воспитании детей как об отношениях между вашими руками и вашим телом; всякий раз, когда ваше тело двигается, ваши руки также двигаются вместе с ним. Подробнее
См. в Словарь
, Вращение и Ограничения цели. Чтобы получить желаемый результат, измените порядок списка Источники, перетаскивая элементы.

Вы можете ограничить набор игровых объектов. Например, вы хотите, чтобы утята шли за мамой подряд. Вы добавляете компонент Ограничение положения в GameObject Duckling1. В списке Источники вы указываете ссылку на MotherDuck. Затем вы добавляете Ограничение положения к Duckling2, которое ссылается на Duckling1. Когда игровой объект MotherDuck перемещается в Сцене, сцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
, Duckling1 следует за MotherDuck и Duckling2 следует за Duckling1.

Избегайте создания цикла Ограничений, так как это приводит к непредсказуемым обновлениям во время игры.

Настройка свойств ограничения

Используйте окно инспектора, чтобы изменить общие свойства ограничения.

Параметры веса и ограничения для ограничения положения
Параметры веса и ограничения для ограничения положения

Используйте Вес, чтобы изменить влияние ограничения. Вес 1 заставляет ограничение обновлять GameObject с той же скоростью, что и его исходные GameObjects. Вес 0 полностью устраняет эффект ограничения. Каждый исходный GameObject также имеет индивидуальный вес.

В Настройках ограничений используйте свойства В состоянии покоя, чтобы указать значения X, Y и Z, которые будут использоваться, когда Вес равен 0 или когда соответствующее свойство в Freeze Axes не отмечено.

Используйте свойства Смещение в Настройки ограничений, чтобы указать значения X, Y и Z, которые будут использоваться при ограничении игрового объекта.

Используйте настройки Заморозить оси, чтобы выбрать, какие оси может изменять ограничение.

Активация и блокировка ограничений

Есть два аспекта работы с ограничениями: активация и блокировка.

Вы активируете ограничение, чтобы оно могло оценивать положение, поворот или масштаб ограниченного игрового объекта. Unity не оценивает неактивные ограничения.

Вы блокируете ограничение, чтобы позволить ему перемещать, вращать или масштабировать игровой объект. Заблокированное ограничение берет на себя управление соответствующими частями преобразования игрового объекта. Вы не можете вручную перемещать, вращать или масштабировать GameObject с заблокированным ограничением. Вы также не можете редактировать Настройки ограничений.

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

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

Для удобства кнопки Активировать и Ноль обновляют Настройки ограничений:

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

Анимация и комбинирование ограничений

Используйте анимационные клипыданные анимации, которые можно использовать для анимированных персонажей или простых анимаций. Это простое «единичное» движение, такое как (один конкретный пример) «Простояние», «Ходьба» или «Бег». Подробнее
См. в Словарь
, чтобы изменить исходные игровые объекты, на которые ссылается ваш ограниченный игровой объект. Поскольку анимация изменяет исходные игровые объекты, ограничение изменяет ваш ограниченный игровой объект.

Вы также можете анимировать свойства в компоненте ограничения. Например, используйте родительское ограничение, чтобы переместить меч персонажа из руки на спину. Во-первых, добавьте Parent Constraint к игровому объекту меча. В списке Источники свяжите Ограничение с рукой персонажа и позвоночником персонажа. Чтобы анимировать меч, добавьте ключевые кадрыКадр, отмечающий начальную или конечную точку перехода в анимации. Кадры между ключевыми кадрами называются промежуточными.
См. в Словарь
вес каждого источника. Чтобы анимировать движение меча из тыльной стороны в руку, добавьте ключевые кадры для изменения веса руки от 0 до 1 и ключевые кадры для веса позвоночника от 1 до 0.

Вы можете добавить более одного типа компонента Constraint к одному и тому же GameObject. При обновлении GameObject Unity оценивает компоненты ограничений от первого до последнего по мере их появления в окне инспектора. GameObject может содержать только один компонент Constraint того же типа. Например, нельзя добавить более одного ограничения положения.

Импорт ограничений

При импорте файлов FBX в редактор Unity из Autodesk® Maya® и MotionBuilder® вы можете включить ограничения. Перейдите на вкладку Анимация в окне настроек импорта и установите флажок Ограничения импорта:

Настройки импорта с установленным флажком «Ограничения импорта»
Настройки импорта с установленным флажком «Ограничения импорта»

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

Добавление и изменение ограничений

Чтобы добавить компонент ограничения:

  1. Выберите игровой объект для ограничения.

  2. В Инспектореокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и редактировать значения. Дополнительная информация
    В окне Словарь
    нажмите Добавить компонент поиск для типа ограничения, которое вы хотите добавить, и щелкните его, чтобы добавить.

  3. Чтобы добавить исходный игровой объект к новому ограничению, перетащите этот игровой объект из иерархии (или из представления "Сцена") в список Источники.

  4. Перемещение, поворот или масштабирование ограниченного игрового объекта и его исходных игровых объектов.

  5. Чтобы активировать ограничение, нажмите Активировать или Ноль или установите флажки Активно и Заблокировать. .

Чтобы изменить компонент ограничения:

  1. Выберите ограниченный игровой объект в редакторе.

  2. Чтобы настроить поля В состоянии покоя или Смещение, используйте окно Инспектора, чтобы развернуть Настройки ограничения, снимите флажок Блокировать , затем измените значения.

  3. Чтобы указать оси, которые обновляет ограничение, разверните Настройки ограничения, затем проверьте свойства в Закрепить оси.

  4. Чтобы добавить исходный игровой объект к ограничению:

    • Если в списке источников нет пустых ячеек, нажмите + внизу списка.

    • Перетащите объект GameObject, который вы хотите использовать в качестве источника ограничения, из сцены в список Источники.

  5. Чтобы удалить исходный игровой объект, выберите его в списке Источники и щелкните символ минуса (-) внизу списка.

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

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

  7. Проверьте активно и заблокируйте.


  • Ограничения добавлены в 2018.1

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3