VehicleWheel3D
Физическое 3D-тело для VehicleBody3D, имитирующее поведение колеса.
Физическое 3D-тело для VehicleBody3D, имитирующее поведение колеса.
Узел, используемый как дочерний элемент родительского элемента VehicleBody3D для моделирования поведения одного из его колес. Этот узел также действует как коллайдер для определения, касается ли колесо поверхности.
Примечание: Этот класс имеет известные проблемы и не предназначен для предоставления реалистичной трехмерной физики транспортного средства. Если вам нужна расширенная физика транспортного средства, вам может потребоваться написать собственную интеграцию физики с использованием другого класса PhysicsBody3D.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
VehicleWheel3DКонструктор
public VehicleWheel3D();Свойства14
BrakeСвойство
public float Brake { get; set; }Замедляет колесо, применяя тормозное усилие. Колесо замедляется только если оно соприкасается с поверхностью. Сила, которую вам нужно применить для адекватного замедления вашего автомобиля, зависит от RigidBody3D.Mass автомобиля. Для автомобиля с массой, установленной на 1000, попробуйте значение в диапазоне 25–30 для резкого торможения.
DampingCompressionСвойство
public float DampingCompression { get; set; }Демпфирование, применяемое к пружине подвески при сжатии, то есть когда колесо движется вверх относительно автомобиля. Измеряется в ньютон-секундах на миллиметр (Н⋅с/мм) (N⋅s/mm) или мегаграммах в секунду (Мг/с)(Mg/s). Это значение должно быть между 0,0 (без демпфирования) и 1,0, но может быть и больше. Значение 0,0 означает, что автомобиль будет продолжать подпрыгивать, поскольку пружина сохраняет свою энергию. Хорошее значение для этого составляет около 0,3 для обычного автомобиля, 0,5 для гоночного автомобиля.
DampingRelaxationСвойство
public float DampingRelaxation { get; set; }Демпфирование, применяемое к пружине подвески при отскоке или выдвижении, то есть когда колесо движется вниз относительно транспортного средства. Измеряется в ньютон-секундах на миллиметр (N⋅s/mm) или мегаграммах в секунду (Mg/s). Это значение должно быть между 0,0 (без демпфирования) и 1,0, но может быть и больше. Это значение всегда должно быть немного выше свойства VehicleWheel3D.DampingCompression. Для значения VehicleWheel3D.DampingCompression 0,3 попробуйте значение релаксации 0,5.
EngineForceСвойство
public float EngineForce { get; set; }Ускоряет колесо, применяя силу двигателя. Колесо ускоряется только в том случае, если оно соприкасается с поверхностью. RigidBody3D.Mass транспортного средства влияет на ускорение транспортного средства. Для транспортного средства с массой, установленной на 1000, попробуйте значение в диапазоне 25–50 для ускорения.
Примечание: Моделирование не учитывает влияние передач, вам нужно будет добавить логику для этого, если вы хотите смоделировать передачи.
Отрицательное значение приведет к реверсированию колеса.
SteeringСвойство
public float Steering { get; set; }Угол поворота рулевого колеса в радианах. Установка ненулевого значения приведет к повороту транспортного средства во время движения.
SuspensionMaxForceСвойство
public float SuspensionMaxForce { get; set; }Максимальная сила, которую может выдержать пружина. Это значение должно быть больше четверти RigidBody3D.Mass VehicleBody3D, иначе пружина не выдержит вес транспортного средства. Хорошие результаты часто достигаются при значении, которое примерно в 3-4 раза больше этого числа.
SuspensionStiffnessСвойство
public float SuspensionStiffness { get; set; }Жесткость подвески, измеряемая в ньютонах на миллиметр (N/mm) или мегаграммах на секунду в квадрате (Mg/s²). Используйте значение ниже 50 для внедорожника, значение от 50 до 100 для гоночного автомобиля и попробуйте что-то около 200 для чего-то вроде болида Формулы-1.
SuspensionTravelСвойство
public float SuspensionTravel { get; set; }Это расстояние, которое может пройти подвеска. Поскольку единицы Reckfell эквивалентны метрам, установите этот параметр относительно низким. Попробуйте значение от 0,1 до 0,3 в зависимости от типа автомобиля.
UseAsSteeringСвойство
public bool UseAsSteering { get; set; }Если true, это колесо будет поворачиваться, когда автомобиль поворачивается. Это значение используется вместе с VehicleBody3D.Steering и игнорируется, если вместо этого вы используете значение VehicleWheel3D.Steering для каждого колеса.
UseAsTractionСвойство
public bool UseAsTraction { get; set; }Если true, это колесо передает силу двигателя на землю, чтобы двигать транспортное средство вперед. Это значение используется вместе с VehicleBody3D.EngineForce и игнорируется, если вместо этого вы используете значение VehicleWheel3D.EngineForce для каждого колеса.
WheelFrictionSlipСвойство
public float WheelFrictionSlip { get; set; }Это определяет, насколько сильное сцепление имеет это колесо. Оно сочетается с настройкой трения поверхности, с которой соприкасается колесо. 0,0 означает отсутствие сцепления, 1,0 — нормальное сцепление. Для настройки дрифт-кара попробуйте установить сцепление задних колес немного ниже, чем передних, или используйте меньшее значение для имитации износа шин. Лучше всего установить это значение на 1,0 при начале.
WheelRadiusСвойство
public float WheelRadius { get; set; }Радиус колеса в метрах.
WheelRestLengthСвойство
public float WheelRestLength { get; set; }Это расстояние в метрах, на которое опускается колесо от исходной точки. Не устанавливайте это значение на 0,0 и не перемещайте колесо в положение, вместо этого переместите исходную точку вашего колеса (гизмо в Reckfell) в положение, которое колесо займет при достижении дна, затем используйте длину покоя, чтобы переместить колесо в положение, в котором оно должно быть, когда автомобиль находится в состоянии покоя.
WheelRollInfluenceСвойство
public float WheelRollInfluence { get; set; }Это значение влияет на крен вашего автомобиля. Если установлено значение 1,0 для всех колес, ваш автомобиль будет сопротивляться крену кузова, в то время как значение 0,0 будет склонно к опрокидыванию.
Методы34
GetBrakefloat
public float GetBrake();floatGetContactBodyEntity3D
public Entity3D GetContactBody();Возвращает узел контактирующего тела, если он допустим в дереве, как Entity3D. В данный момент GridMap не поддерживается, поэтому узел всегда будет иметь тип PhysicsBody3D.
Возвращает null, если колесо не контактирует с поверхностью или контактирующее тело не является PhysicsBody3D.
Entity3DGetContactNormalVector3
public Vector3 GetContactNormal();Возвращает нормаль столкновения подвески в мировом пространстве, если колесо находится в контакте. Если колесо не находится в контакте ни с чем, возвращает вектор, направленный прямо вдоль оси подвески к транспортному средству в мировом пространстве.
Vector3GetContactPointVector3
public Vector3 GetContactPoint();Возвращает точку столкновения подвески в мировом пространстве, если колесо находится в контакте. Если колесо не находится в контакте ни с чем, возвращает максимальную точку луча колеса, отбрасываемого в мировом пространстве, которая определяется как wheel_rest_length + wheel_radius.
Vector3GetDampingCompressionfloat
public float GetDampingCompression();floatGetDampingRelaxationfloat
public float GetDampingRelaxation();floatGetEngineForcefloat
public float GetEngineForce();floatGetFrictionSlipfloat
public float GetFrictionSlip();floatGetRadiusfloat
public float GetRadius();floatGetRollInfluencefloat
public float GetRollInfluence();floatGetRpmfloat
public float GetRpm();Возвращает скорость вращения колеса в оборотах в минуту.
floatGetSkidinfofloat
public float GetSkidinfo();Возвращает значение от 0,0 до 1,0, которое указывает, буксует ли это колесо. 0,0 — буксует (колесо потеряло сцепление, например, обледеневшая дорога), 1,0 — не буксует (колесо имеет полное сцепление, например, сухая асфальтовая дорога).
floatGetSteeringfloat
public float GetSteering();floatGetSuspensionMaxForcefloat
public float GetSuspensionMaxForce();floatGetSuspensionRestLengthfloat
public float GetSuspensionRestLength();floatGetSuspensionStiffnessfloat
public float GetSuspensionStiffness();floatGetSuspensionTravelfloat
public float GetSuspensionTravel();floatIsInContactbool
public bool IsInContact();Возвращает true, если это колесо контактирует с поверхностью.
boolIsUsedAsSteeringbool
public bool IsUsedAsSteering();boolIsUsedAsTractionbool
public bool IsUsedAsTraction();boolSetBrakevoid
public void SetBrake(float brake);| Имя | Тип | По умолчанию |
|---|---|---|
brake | float | — |
SetDampingCompressionvoid
public void SetDampingCompression(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetDampingRelaxationvoid
public void SetDampingRelaxation(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetEngineForcevoid
public void SetEngineForce(float engineForce);| Имя | Тип | По умолчанию |
|---|---|---|
engineForce | float | — |
SetFrictionSlipvoid
public void SetFrictionSlip(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetRadiusvoid
public void SetRadius(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetRollInfluencevoid
public void SetRollInfluence(float rollInfluence);| Имя | Тип | По умолчанию |
|---|---|---|
rollInfluence | float | — |
SetSteeringvoid
public void SetSteering(float steering);| Имя | Тип | По умолчанию |
|---|---|---|
steering | float | — |
SetSuspensionMaxForcevoid
public void SetSuspensionMaxForce(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetSuspensionRestLengthvoid
public void SetSuspensionRestLength(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetSuspensionStiffnessvoid
public void SetSuspensionStiffness(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetSuspensionTravelvoid
public void SetSuspensionTravel(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetUseAsSteeringvoid
public void SetUseAsSteering(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetUseAsTractionvoid
public void SetUseAsTraction(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |