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

ArticulationBody.AddForce

Declaration

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

Параметры

Параметр Описание
сила Вектор силы, подлежащий применению.
режим Тип применяемого усилия.

Описание

Применяет силу к ArticulationBody.

Обратите внимание, что сила накапливается на протяжении всего периода симуляции. Она физически приложена к сочленению только в ходе симуляции, после чего FixedUpdate вызывался скрипт. Указание ForceMode mode позволяет изменить тип силы на Ускорение, Импульс или Изменение скорости.

Вы можете применить силу только к активному ArticulationBody. Если a GameObject является неактивным, AddForce Кроме того, ArticulationBody должен быть подвижным (не может быть неподвижным).

ForceMode.Force и ForceMode.Acceleration режимы изменяют линейную скорость в секунду аккумулятора и ForceMode.Impulse и ForceMode.VelocityChange модифицировать аккумулятор линейной скорости на шаг. Смешивание этих двух групп ForceModes не работает для Артикулирующих Тел и приведет к применению только аккумулятора Линейной Скорости в секунду.

Для получения дополнительной информации о том, как ForceMode влияет на скорость, см. Rigidbody.AddForce.

По умолчанию состояние ArticulationBody настроено на пробуждение при приложении силы, если только сила не Vector3.zero.
Единица измерения — Н (ньютон).

Дополнительные ресурсы: AddForceAtPosition, AddRelativeForce, AddTorque.

В данном примере применяется нагрузка вперед на GameObject's ArticulationBody.

using UnityEngine;
using UnityEngine.InputSystem;
                        
public class Example : MonoBehaviour
{
    ArticulationBody m_ArticulationBody;
    public float m_Thrust = 20f;

void Start() { //Fetch the ArticulationBody from the GameObject with this script attached m_ArticulationBody = GetComponent<ArticulationBody>(); }

void FixedUpdate() { if (Keyboard.current.spaceKey.isPressed) { //Apply a force to this ArticulationBody in the direction of this GameObject's up-axis m_ArticulationBody.AddForce(transform.up * m_Thrust); } } }