Para aplicar fuerza a un cuerpo rígido, podemos utilizar el método AddForce, que tiene 4 métodos sobrecargados:
1. AddForce (fuerza Vector3): utilizando parámetros de tipo Vector3, puede aplicar fuerzas al cuerpo rígido especificando los componentes x, y y z del objeto Vector3. El uso de este método aplicará una fuerza continua al cuerpo rígido.
Rigidbody rb;
Vector3 force = new Vector3(10f, 0f, 0f);
rb.AddForce(force);
2. AddForce(float x, float y, float z): utiliza tres parámetros de tipo flotante: x, y, z se refieren a los componentes aplicados a los ejes x, y, z respectivamente. El uso de este método aplicará una fuerza continua al cuerpo rígido.
Rigidbody rb;
float xForce = 10f;
float yForce = 0f;
float zForce = 0f;
rb.AddForce(xForce, yForce, zForce);
De hecho, los dos métodos anteriores son equivalentes. Sólo los tipos de parámetros utilizados son diferentes.
3.AddForce(Vector3 fuerza, modo ForceMode);entre ellos, el parámetroforce
es el vector de la fuerza aplicada y el modo de parámetro es un parámetro de tipo de enumeración utilizado para especificar la fuerza modelo. Los modos son:
ForceMode.Force
: Aplica una fuerza continua, afectada por la masa.ForceMode.Impulse
: Aplicar una fuerza de impacto instantánea, afectada por la masa.ForceMode.Acceleration
: Aplicar una aceleración continua, la masa no tiene ningún efecto.ForceMode.VelocityChange
: Aplique una fuerza que cambie la velocidad del cuerpo rígido y la masa no tendrá ningún efecto.
Rigidbody rb;
void Start()
{
Vector3 force = new Vector3(0f, 5f, 0f);
rb.AddForce(force, ForceMode.Impulse);//给刚体施加一个瞬间冲击力
}
4. AddForce (float x, float y, float z, modo ForceMode); entre ellos, los parámetros x, y, z se refieren a los componentes aplicados a los ejes x, y, z respectivamente. El modo de parámetro es un parámetro de tipo enumeración que se utiliza para especificar el modo de fuerza. Los modos son:
ForceMode.Force
: Aplica una fuerza continua, afectada por la masa.ForceMode.Impulse
: Aplicar una fuerza de impacto instantánea, afectada por la masa.ForceMode.Acceleration
: Aplicar una aceleración continua, la masa no tiene ningún efecto.ForceMode.VelocityChange
: Aplique una fuerza que cambie la velocidad del cuerpo rígido y la masa no tendrá ningún efecto.
Rigidbody rb;
void Start()
{
float xForce = 0f;
float yForce = 0f;
float zForce = 20f;
rb.AddForce(xForce, yForce, zForce, ForceMode.Acceleration); //给刚体上施加一个持续的加速度
}
De hecho, los dos métodos sobrecargados 3 y 4 también son iguales, pero los tipos de parámetros de fuerza son diferentes.
Cuando se utiliza AddForce para aplicar fuerza a un cuerpo rígido, la atención se centra todavía en la diferenciación de diferentes modos utilizando el parámetro ForceMode, para que se pueda utilizar fácilmente.
Aquí hay un efecto de diferencia simulado:
Unity utiliza el método AddForce para aplicar fuerza a un cuerpo rígido El efecto de diferentes parámetros ForceMode.