ArticulationBody.AddForceAtPosition
Declaration
public void AddForceAtPosition(Vector3 force, Vector3 position, ForceMode mode = ForceMode.Force);Параметры
| Параметр | Описание |
|---|---|
| сила | Вектор силы в мировых координатах. |
| должность | Положение в мировых координатах. |
| режим | Тип применяемого усилия. |
Описание
Применяет force к конкретному position, в результате чего на объект применяется крутящий момент и сила.
Для реалистичных эффектов, position должен находиться примерно в пределах поверхности Артикуляторного Тела. Это идеально для симулирования взрывов. Чтобы создать реалистичные взрывы, применяйте силу на несколько кадров вместо одного. Обратите внимание, что когда position находится далеко от центра Артикуляторного Тела, то приложенный момент будет нереалистично большим.
Вы можете применять силу только к активному ArticulationBody. Если GameObject неактивен, AddForceAtPosition не имеет эффекта.
ForceMode.Force модифицирует линейную скорость в секунду и угловую скорость в секунду, а ForceMode.Impulse модифицирует линейную скорость на шаг и угловую скорость на шаг. Смешивание этих двух ForceModes не работает для Артикуляторных Тел и приведет к применению только линейной скорости в секунду.
Более подробную информацию о том, как ForceMode влияет на скорость, см. Rigidbody.AddForce.
Применение силы к ArticulationBody пробуждает это тело. Если величина силы равна нулю, то ArticulationBody не пробуждается.
Единица измерения — N (ньютоны).
Этот метод не поддерживает ForceMode.Acceleration и ForceMode.VelocityChange.
Дополнительные ресурсы: AddForce, AddRelativeForce, AddTorque.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void ApplyForce(ArticulationBody body) { Vector3 direction = body.transform.position - transform.position; body.AddForceAtPosition(direction.normalized, transform.position); } }