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

Объявление

public void AddForce(Vector3 force, ForceMode mode = ForceMode.Force);

Параметры

force Вектор силы в мировых координатах.
mode Тип применяемой силы.

Описание

Добавляет силу к Rigidbody.

Сила прикладывается непрерывно в направлении вектора force. Указание ForceModemode позволяет изменить тип силы на Acceleration, Impulse или Velocity Change.

Эффекты сил, применяемых с помощью этой функции, накапливаются во время призыва. Физическая система применяет эффекты во время следующего запуска симуляции (либо после FixedUpdate, либо когда скрипт явно вызывает Physics.Simulate). метод). Поскольку эта функция имеет разные режимы, физическая система накапливает только результирующее изменение скорости, а не переданные значения силы. Предполагая, что deltaTime (DT) равно длине шага моделирования (Time.fixedDeltaTime), а масса равна массе твердого тела, к которому приложена сила, здесь так рассчитывается изменение скорости для всех режимов:

  • ForceMode.Force: интерпретирует ввод как силу (измеряется в ньютонах) и изменяет скорость на значение силы * DT / масса. Эффект зависит от длины шага моделирования и массы тела.
  • ForceMode.Acceleration: интерпретирует параметр как ускорение (измеряется в метрах в секунду в квадрате) и изменяет скорость на значение силы * DT. Эффект зависит от длины шага моделирования, но не зависит от массы тела.
  • ForceMode.Impulse: интерпретирует параметр как импульс (измеряется в ньютонах в секунду) и изменяет скорость на значение силы/массы. Эффект зависит от массы тела, но не зависит от длины шага моделирования.
  • ForceMode.VelocityChange: интерпретирует параметр как прямое изменение скорости (измеряется в метрах в секунду) и изменяет скорость на значение силы. Эффект не зависит от массы тела или длины шага моделирования.

Сила может быть применена только к активному Rigidbody. Если GameObject неактивен, AddForce не действует. Кроме того, Rigidbody не может быть кинематической.

По умолчанию Rigidbody активируется после приложения силы, если только сила не Vector3.zero.

Смотрите так же: AddForceAtPosition, AddRelativeForce, AddTorque .

В этом примере к твердому телу игрового объекта прикладывается поступательная сила.

using UnityEngine; public class Example : MonoBehaviour { Rigidbody m_Rigidbody; public float m_Thrust = 20f; void Start() { //Fetch the Rigidbody from the GameObject with this script attached m_Rigidbody = GetComponent<Rigidbody>(); } void FixedUpdate() { if (Input.GetButton("Jump")) { //Apply a force to this Rigidbody in direction of this GameObjects up axis m_Rigidbody.AddForce(transform.up * m_Thrust); } } }

Объявление

public void AddForce(float x, float y, float z, ForceMode mode = ForceMode.Force);

Параметры

x Величина силы по мировой оси x.
y Размер силы по мировой оси Y.
z Размер силы по мировой оси Z.
mode Тип применяемой силы.

Описание

Добавляет силу к Rigidbody.

В этом примере к твердому телу игрового объекта применяется импульсная сила по оси Z.

using UnityEngine; public class Example : MonoBehaviour { public float thrust = 1.0f; public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); rb.AddForce(0, 0, thrust, ForceMode.Impulse); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3