Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

Справочная информация по компоненту контроллера символов

Контроллер символов в основном используется для управления игроком от первого или третьего лица без применения физики Rigidbody.

Инспектор контроллера символов
Инспектор контроллера символов

Свойства

Свойство Описание
Пределы наклона Ограничивает подъем коллайдера только по склонам, которые менее круты (в градусах), чем указанное значение.
Смещение шага Персонаж будет подниматься по лестнице только в том случае, если она ближе к земле, чем указанное значение. Это не должно превышать высоту Контроллера персонажа, иначе это приведет к ошибке.
Ширина кожицы Два коллайдера могут проникать друг в друга на глубину, равную их ширине кожи. Большая ширина кожи снижает тремор. Низкая ширина кожи может привести к тому, что персонаж застряет. Хорошая настройка — сделать это значение 10% от радиуса.
Минимальное расстояние перемещения Если персонаж пытается переместиться ниже указанного значения, он не будет передвигаться вообще. Это может быть использовано для снижения джиттера. В большинстве случаев это значение следует оставить в 0.
Центр Это будет смещать Капсулу Collider в мировом пространстве, и не повлияет на то, как Персонаж вращается.
Радиус Длина радиуса капсулы Collider. Это, по сути, ширина коллайдера.
Высота Персонаж Капсула Collider высота. Изменение этого параметра приведет к масштабированию коллайдера вдоль оси Y как в положительном, так и в отрицательном направлении.

Переопределение слоев

Раздел Layer Overrides содержит свойства, позволяющие переопределить общие для проекта Обнаружение столкновений на основе слоев настройки для этого коллайдера.

Свойство Описание
Приоритет переопределения слоя Определяет приоритет этого переопределения коллайдера. Если у двух коллайдеров переопределения конфликтуют, применяются настройки коллайдера с более высоким значением приоритета.
Например, если коллайдер с Приоритет переопределения слоя 1 столкновение с Collider с Приоритет переопределения слоя 2, система физики использует настройки для Collider с Приоритет переопределения слоя из 2.
Включить слои Выберите слои, которые будут включены в столкновения с этим коллайдером.
Исключить слои Выберите слои, которые будут исключены из столкновений с этим коллайдером.
Контроллер символов
Контроллер символов

Подробности

Традиционное управление от первого лица в стиле Doom не физически реалистично. Персонаж движется со скоростью 90 миль в час, немедленно останавливается и поворачивается на дюйм. Поскольку это настолько нереально, использование Rigidbodies и физики для создания такого поведения непрактично и будет чувствоваться неправильно. Решением является специализированный контроллер персонажа. Это просто капсула в форме Collider которому можно сказать, чтобы он двигался в каком-то направлении от скрипта. Контроллер затем выполнит движение, но будет ограничен столкновениями. Он будет скользить по стенам, подниматься по лестницам (если они ниже Step Offset) и ходить по склонам в пределах Slope Limit.

Контроллер не реагирует на силы самостоятельно, и он не отталкивает Ригидбоди автоматически в сторону.

Если вы хотите подталкивать Rigidbodies или объекты с помощью Character Controller, вы можете применять силы к любому объекту, с которым он столкнется, через функцию OnControllerColliderHit() с помощью скрипта.

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

Настройка вашего персонажа

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

Смещение шагов может повлиять на это тоже, убедитесь, что это значение находится между 0.1 и 0.4 для 2-метрового человека.

Ограничение наклона не должно быть слишком малым. Часто используется значение 90 градусов, которое работает лучше всего. Контроллер персонажа не сможет подниматься на стены из-за формы капсулы.

Не застряйте

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

Это хорошая практика, чтобы держать ваш Skin Ширина по крайней мере больше, чем 0.01 и более 10% от Радиус.

Мы рекомендуем сохранить Минимальное расстояние перемещения на уровне 0.

См. ссылку на скрипт контроллера символов here

Подсказки

  • Попробуйте настроить Ширина кожи если вы обнаружите, что ваш персонаж часто застревает.
  • Character Controller может влиять на объекты с помощью физики, если вы пишете свои собственные скрипты.
  • Контроллер персонажа не может подвергаться воздействию объектов через физику.
  • Обратите внимание, что изменение свойств Character Controller в инспекторе приведет к повторному созданию контроллера в сцене, так что любые существующие контакты Trigger будут потеряны, и вы не получите никаких сообщений OnTriggerEntered до тех пор, пока контроллер не будет перемещен снова.
  • Капсула контроллера персонажа, используемая в запросах, таких как raycast, может уменьшиться на небольшой фактор. Поэтому запросы могут в некоторых угловых случаях пропустить, даже если они, как кажется, попадают в гаджеты контроллера персонажа.