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