Explicación detallada de Unity usando el método AddForce para aplicar fuerza a cuerpos rígidos

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.

Supongo que te gusta

Origin blog.csdn.net/mr_five55/article/details/135025753
Recomendado
Clasificación