CharacterController
The CharacterController sample of the C# Component Samples demo demonstrates the following: Пример CharacterController из набора примеров C# Component Samples демонстрирует следующее:
- Implementation of the first-person character controller using the First Person Controller component assigned to PlayerDummy Реализация контроллера персонажей от первого лица с использованием компонента First Person Controller, назначенного PlayerDummy
- Setting the collision capsule Установка коллизионной капсулы
- Detecting intersection via shape-surface collision and detailing collision via the surface intersection Обнаружение пересечения с помощью формы-поверхности collision и детализация столкновения с помощью пересечения поверхностей
First Person Controller ComponentКомпонент контроллера от первого лица#
The FirstPersonController component implements basic first-person player controls. The Player itself consists of a camera and a capsule shape to detect collisions. The component has the following settings available for adjustment: Компонент FirstPersonController реализует основные элементы управления плеером от первого лица. Сам игрок состоит из камеры и формы капсулы для обнаружения столкновений. Компонент имеет следующие настройки, доступные для настройки:
- Input Ввод
- Gamepad Input Ввод с геймпада
- Body parameters required for movements Body параметры, необходимые для движений
- Camera parameters Параметры камеры
- Movement parameters Параметры движения
- Auto Stepping for walking through obstacles with a certain height and slope Auto Stepping для преодоления препятствий с определенной высотой и уклоном
- Objects Interaction for simple interaction with physical objects Взаимодействие с объектами для простого взаимодействия с физическими объектами
- Advanced Settings Дополнительные настройки
- Debug settings to facilitate debugging Настройки отладки для облегчения отладки
Creating a PlayerСоздание игрока#
To create a player, you need to create a new Player Dummy (Create -> Camera -> Dummy) and add it to the scene. Чтобы создать игрока, вам нужно создать новый Player Dummy (Create -> Camera -> Dummy) и добавить его в сцену.
Enable the Main Player option for this Player in the Parameters window. Then add the FirstPersonController component to this node. Включите опцию Main Player для этого игрока в окне Parameters. Затем добавьте компонент FirstPersonController к этому узлу.
If you save the world and run the application, you can control a player with the standard settings. Если вы сохраните мир и запустите приложение, вы сможете управлять плеером со стандартными настройками.
The player is represented by a capsule with the pivot located at the bottom of the capsule. When the player is created, the transformation is corrected based on the Y axis direction of the player. The Z axis is always directed upwards. Игрок представлен капсулой с осью, расположенной в нижней части капсулы. При создании игрока преобразование корректируется в зависимости от направления оси Y игрока. Ось Z всегда направлена вверх.
If the camera is assigned from the editor, its position and direction are based on the player's position and rotation in the world: the horizontal angle is the player's rotation angle along the Z axis, and the vertical angle is the actual camera's angle. Если камера назначается из редактора, ее положение и направление зависят от положения игрока и вращения в мире: горизонтальный угол - это угол поворота игрока по оси Z, а вертикальный угол - это фактический угол камеры.
SettingsНастройки#
The FirstPersonController component contains the following groups of settings that are displayed in the Node tab of the Parameters window after assigning the component to a node. Компонент FirstPersonController содержит следующие группы настроек, которые отображаются на вкладке Node окна Parameters после назначения компонента узлу.
Input SettingsНастройки ввода#
The Input group allows setting keys to control the character using the keyboard and mouse: moving forward and backward, left and right, run, jump, and crouch modes. To assign the keys, Input.KEY enums are used. You can also adjust the mouse sensitivity that affects the camera rotation speed. Группа Input позволяет настроить клавиши для управления персонажем с помощью клавиатуры и мыши: режимы движения вперед и назад, влево и вправо, бега, прыжка и приседания. Для назначения ключей используются перечисления Input.KEY. Вы также можете настроить чувствительность мыши, которая влияет на скорость вращения камеры.
Input from the keyboard/mouse and gamepad are processed simultaneously. The action with a higher deviation has a priority. Ввод с клавиатуры / мыши и геймпада обрабатывается одновременно. Действие с большим отклонением имеет приоритет.
Gamepad Input SettingsНастройки ввода с геймпада#
The Gamepad Input group allows setting the gamepad control. Current settings are simplified: one stick can be set for horizontal movement, and the other for the camera rotation. Deadzone deviation is set for both sticks, and camera sensitivity can be set additionally. Any other actions can be set using Input.GAMEPAD_BUTTON keys. Группа Gamepad Input позволяет настроить управление геймпадом. Текущие настройки упрощены: один стик можно настроить на перемещение по горизонтали, а другой - на поворот камеры. Для обоих стиков выставлено отклонение мертвой зоны, дополнительно можно настроить чувствительность камеры. Любые другие действия можно установить с помощью ключей Input.GAMEPAD_BUTTON.
Input from the keyboard/mouse and gamepad are processed simultaneously. The action with a higher deviation has a priority. Ввод с клавиатуры / мыши и геймпада обрабатывается одновременно. Действие с большим отклонением имеет приоритет.
Body SettingsНастройки тела#
The Body group contains settings to adjust the player's physical body and shape defined by a capsule. Группа Body содержит настройки для настройки физического тела и формы игрока, определяемой капсулой.
Use Object Body | If enabled, the body and shape of the object this component is assigned to are used.
To enable this option, the object should have the Dummy Body and at least one Capsule shape. If either body or shape is missing, they will be created automatically based on the values set in the parameters below with the corresponding warning in the console.To enable this option, the object should have the Dummy Body and at least one Capsule shape. If either body or shape is missing, they will be created automatically based on the values set in the parameters below with the corresponding warning in the console. To enable this option, the object should have the Dummy Body and at least one Capsule shape. If either body or shape is missing, they will be created automatically based on the values set in the parameters below with the corresponding warning in the console. Чтобы включить эту опцию, объект должен иметь фигуру Dummy Bodyи хотя бы одну фигуруCapsule. Если тело или форма отсутствуют, они будут созданы автоматически на основе значений, установленных в параметрах ниже, с соответствующим предупреждением в консоли. |
---|---|
Capsule Radius | The radius of the capsule that defines the player's shape. Радиус капсулы, определяющей форму игрока. |
Capsule Height | The height of the capsule that defines the player's shape. Keep in mind that this value defines only the height of the cylindrical part. The full height of the capsule is calculated as capsule height + 2 * capsule radius. Высота капсулы, определяющей форму игрока. Имейте в виду, что это значение определяет только высоту цилиндрической части. Полная высота капсулы рассчитывается как capsule height + 2 * capsule radius.
|
Physics Intersection Mask | The mask that is used for selective detection of physics intersections (with other physical objects having bodies and collider shapes, or ray intersections with the collider geometry). Маска , которая используется для выборочного обнаружения пересечений физики (с другими физическими объектами, имеющими тела и формы коллайдера, или пересечения лучей с геометрией коллайдера). |
Collison Mask | The mask that is used to detect collisions of the shape with other physical objects. Маска , которая используется для обнаружения столкновений формы с другими физическими объектами. |
Exclusion Mask | The mask that is used to prevent collisions of the shape with other physical objects. Маска , которая используется для предотвращения столкновений фигуры с другими физическими объектами. |
Camera SettingsНастройки камеры#
The Camera group contains settings to adjust the camera. Группа Camera содержит настройки для настройки камеры.
Camera Mode | The mode of assigning the camera to the player:
|
---|---|
FOV | The camera's field of view, in degrees. Поле зрения камеры в градусах. |
Near Clipping | Distance to the near clipping plane of the player's viewing frustum, in units. Расстояние до ближайшей плоскости отсечения пирамиды обзора игрока, в единицах. |
Far Clipping | Distance to the far clipping plane of the player's viewing frustum, in units. Расстояние до дальней плоскости отсечения пирамиды обзора игрока, в единицах. |
Camera Position Offset | Distance from the camera to the player's position. Расстояние от камеры до позиции игрока. |
Min Vertical Angle | The minimum vertical angle of the camera, i.e. maximum possible angle to look up. Минимальный вертикальный угол камеры, т. е. максимально возможный угол обзора вверх. |
Max Vertical Angle | The maximum vertical angle of the camera, i.e. maximum possible angle to look down. Максимальный вертикальный угол камеры, т.е. максимально возможный угол обзора вниз. |
Movement SettingsНастройки движения#
The Movement group contains all settings required for the character movements. Группа Movement содержит все настройки, необходимые для движений персонажа.
Use Jump | The flag that enables jumping and all relevant parameters in the player logic. Флаг, разрешающий прыжки, и все соответствующие параметры в логике игрока. | ||||||||
---|---|---|---|---|---|---|---|---|---|
Use Crouch | The flag that enables crouching and all relevant parameters in the player logic.
If the player is crouching, and the Crouch button is released, it will raise only if there are no obstacles above. If the player raises, and there is an obstacle above or the Crouch button is pressed again, the player takes the crouch state again.If the player is crouching, and the Crouch button is released, it will raise only if there are no obstacles above. If the player raises, and there is an obstacle above or the Crouch button is pressed again, the player takes the crouch state again. If the player is crouching, and the Crouch button is released, it will raise only if there are no obstacles above. If the player raises, and there is an obstacle above or the Crouch button is pressed again, the player takes the crouch state again. Если игрок приседает, и кнопка Crouchотпущена, он поднимется, только если выше нет препятствий. Если игрок делает рейз и есть препятствие выше или кнопкаCrouchнажимается снова, игрок снова принимает состояние приседания. |
||||||||
Use Run | The flag that enables running and all relevant parameters in the player logic. Флаг, разрешающий запуск, и все соответствующие параметры в логике игрока. | ||||||||
Use Run Default | The flag that sets running as a default state of the player's movement. If this state is enabled, the walk state is enabled by using the Run Key. Флаг, который устанавливает бег по умолчанию для движения игрока. Если это состояние включено, состояние обхода включается с помощью Run Key . | ||||||||
Crouch Speed | Horizontal speed used for crouching. Горизонтальная скорость, используемая для приседания. | ||||||||
Walk Speed | Horizontal speed used for walking. Горизонтальная скорость, используемая для ходьбы. | ||||||||
Run Speed | Horizontal speed used for running. Горизонтальная скорость, используемая для бега. | ||||||||
Ground Acceleration | Horizontal acceleration applied when the player is on the ground. Горизонтальное ускорение применяется, когда игрок находится на земле. | ||||||||
Air Acceleration | Horizontal acceleration applied when the player is in the air. Горизонтальное ускорение применяется, когда игрок находится в воздухе. | ||||||||
Ground Damping | Damping of the horizontal speed when the player is on the ground. Демпфирование горизонтальной скорости, когда игрок находится на земле. | ||||||||
Air Damping | Damping of the horizontal speed when the player is in the air. Демпфирование горизонтальной скорости при нахождении игрока в воздухе. | ||||||||
Jump Power | Jump power of the player in the Run, Walk and Idle modes. Сила прыжка игрока в режимах бега, ходьбы и холостого хода. | ||||||||
Crouch Jump Power | Jump power of the player in the Crouch mode. Скачок силы игрока в режиме Crouch. | ||||||||
Crouch Height | Height of the camera when the player is crouching. The minimum value equals to capsule radius x 2, the maximum height is equal to the capsule height.Height of the camera when the player is crouching. The minimum value equals to capsule radius x 2, the maximum height is equal to the capsule height. | ||||||||
Crouch Transition Time | Time required for transition between the crouching and standing states. Время, необходимое для перехода между состояниями приседания и стоя. | ||||||||
Max Ground Angle | Angle up to which the ground is considered to be even. If the angle is exceeded, the character can't stand still and slides down the slope. If the character climbs up the hill and its angle is more than this value, the character wouldn't climb up. Угол, до которого земля считается ровной. Если угол превышен, персонаж не может стоять на месте и скатывается по склону. Если персонаж поднимается на холм, а его угол больше этого значения, персонаж не будет подниматься наверх. | ||||||||
Max Ceiling Angle | The value that defines the maximum angle at which the surface is considered to be the ceiling. If the surface the top part of the capsule contacts with has an angle that is less than this value, the character is considered to have hit the ceiling: its vertical speed becomes equal to 0 and the character starts to fall down. If the surface above the character has an angle that exceeds this value, the character slides along this surface. Значение, определяющее максимальный угол, при котором поверхность считается потолком. Если поверхность, с которой соприкасается верхняя часть капсулы, имеет угол меньше этого значения, считается, что персонаж ударился о потолок: его вертикальная скорость становится равной 0, и персонаж начинает падать. Если поверхность над персонажем имеет угол, превышающий это значение, персонаж скользит по этой поверхности. | ||||||||
Check Move Ray Offset | Offset of the ray that checks the surface it would potentially move to. The minimum value is 0, the maximum is 0.1 unit.
|
||||||||
Check Move Mask | Mask used to sort out intersections with the surface. Маска, используемая для сортировки пересечений с поверхностью. | ||||||||
Wall Stop Sliding Angle | Horizontal angle between the direction ray and contact point of the capsule with the wall. If the angle is less than this value, the player doesn't slide along the wall.
Горизонтальный угол между направляющим лучом и точкой контакта капсулы со стенкой. Если угол меньше этого значения, игрок не скользит по стене. |
Auto Stepping SettingsНастройки автоматического шага#
The Auto Stepping group of settings fine-tunes automatic climbing upon obstacles up to a certain height. The Auto Stepping process consists of three phases: raising the player to the obstacle height, moving it onto the obstacle and solving collisions, and dropping down on the surface of this obstacle and solving collisions. Группа настроек Auto Stepping настраивает автоматическое преодоление препятствий до определенной высоты. Процесс Auto Stepping состоит из трех этапов: подъем игрока на высоту препятствия, перемещение его на препятствие и решение столкновений, падение на поверхность этого препятствия и разрешение столкновений.
Use Auto Stepping | The flag to toggle the Auto Stepping option. Флаг для переключения параметра Auto Stepping. |
---|---|
Min Step Height | Minimum height of an obstacle for Auto Stepping to be applied. This is required to avoid applying Auto Stepping on even surfaces. Минимальная высота препятствия для применения Auto Stepping. Это необходимо, чтобы избежать применения Auto Stepping на ровных поверхностях. |
Max Step Height | Maximum height of an obstacle that can be climbed upon with Auto Stepping. Максимальная высота препятствия, которое можно преодолеть с помощью Auto Stepping. |
Max Stair Angle | Maximum slope angle for Auto Stepping to be applied. If the character steps on a surface with a slope, the angle of which is greater than the Max Stair Angle value, this last step is canceled. Максимальный угол наклона для применения автоматического шага. Если персонаж наступает на поверхность с уклоном, угол которого больше, чем значение Max Stair Angle, этот последний шаг отменяется. |
Check Stair Ray Offset | Offset of the ray that checks the level of the potential stair for Auto Stepping. This offset is vertical and in the direction of the potential movement. Смещение луча, который проверяет уровень потенциальной лестницы для автоматического перехода. Это смещение вертикальное и в направлении потенциального движения. |
Stairs Detection Angle | Horizontal angle that defines the area for checking the contacts of the capsule with other objects in the movement direction. Allows avoiding false Auto Stepping near walls. Горизонтальный угол, определяющий область проверки контактов капсулы с другими объектами в направлении движения. Позволяет избежать ложного автоперехода возле стен. |
Stair Detection Mask | The mask for checking intersections with the stairs for Auto Stepping. If you have stairs with a complex geometry and want to simplify it for the Auto Stepping process, disable this mask for the complex geometry and enable for the simplified model. Маска проверки пересечений с лестницей для автоматического перехода. Если у вас есть лестница со сложной геометрией и вы хотите упростить ее для процесса Auto Stepping, отключите эту маску для сложной геометрии и включите для упрощенной модели. |
Objects Interaction SettingsПараметры взаимодействия объектов#
The Objects Interaction group contains settings that regulate simple physical interaction of the player with other physical objects. Группа Objects Interaction содержит настройки, регулирующие простое физическое взаимодействие игрока с другими физическими объектами.
Use Objects Interaction | The flag to toggle interaction with other physical objects. These are the objects that have the Rigid Body assigned. Флаг для переключения взаимодействия с другими физическими объектами. Это объекты, которым назначено Rigid Body . |
---|---|
Impulse Multiplier | Multiplier for the impulse applied to the Rigid Body the player collides with. Множитель импульса, приложенного к твердому телу, с которым игрок сталкивается. |
Advanced SettingsРасширенные настройки#
The Advanced Settings group contains auxiliary settings for the player update. Группа Advanced Settings содержит вспомогательные настройки для обновления плеера.
Player Fps | Minimum update framerate for the player. If the current FPS is less than this value, the player is updated several times per frame. Минимальная частота кадров обновления для игрока. Если текущий FPS меньше этого значения, плеер обновляется несколько раз за кадр. |
---|---|
Collision Iterations | Number of iterations for resolving collisions. Количество итераций для разрешения коллизий. |
Contacts Buffer Size | Maximum number of contacts processed for a collision. Максимальное количество контактов, обработанных при конфликте. |
Heavy Contacts Count | Maximum number of contacts up to which the Collision Iterations value is applied at processing contacts. If the number of contacts exceeds this value, then only one iteration is used to avoid performance drop. Максимальное количество контактов, до которого применяется значение Collision Iterations при обработке контактов. Если количество контактов превышает это значение, то используется только одна итерация, чтобы избежать падения производительности. |
Debug SettingsНастройки отладки#
The Debug Settings group contains settings for debugging information. To see the debug info, the project should be run with the Debug configuration set. Группа Debug Settings содержит настройки для отладочной информации. Чтобы увидеть информацию об отладке, проект должен быть запущен с установленной конфигурацией отладки .
Debug Camera | Enabling the Debug Camera creates a third-person camera that observes the player. This camera is controlled using the cursor arrows and + and - for changing the distance to the player. Enabling Use Fixed Angles positions this camera behind the player and makes it view the player's direction. Включение Debug Camera создает камеру от третьего лица, которая наблюдает за игроком. Эта камера управляется с помощью стрелок курсора и + и - для изменения расстояния до игрока. Включение Use Fixed Angles помещает эту камеру позади игрока и заставляет ее видеть направление игрока. |
---|---|
Debug Visualizer | Enabling the Debug Visualizer displays the selected debug information:
|
Debug Profiler | Enabling the Debug Profiler displays the selected debug information in the Profiler:
|
Debug Colors | Color pickers for setting the colors to be used for displaying the information in the Visualizer and Profiler. Палитры цветов для установки цветов, которые будут использоваться для отображения информации в Visualizer и Profiler. |
Доступ к исходному коду демо-проекта#
Вы можете изучать и модифицировать исходный код демо-проекта, и создавать свои собственные проекты на его основе. Чтобы получить доступ к исходному коду, сделайте следующее:
- Найдите демо-проект C# Component Samples в разделе Demos и щелкните Install (если вы не установили его ранее).
- После успешной установки демо появится в разделе Installed, и вы сможете скопировать ее как проект, щелкнув Copy as Project.
- В открывшемся окне Create New Project введите имя нового проекта в соответствующее поле и нажмите Create New Project.
- Теперь вы можете щелкнуть Open Code IDE, чтобы проверить и изменить исходный код в IDE по умолчанию, или Open Editor, чтобы открыть проект для работы с контентом в UnigineEditor.