Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

624
Views
Unity 2D: Rigidbody2D 'addforce' funciona verticalmente pero no horizontalmente?

¡EDITAR! Así que cargué un FRESH PROJECT, creé un círculo y le agregué mi script. Cuando presiono iniciar, el círculo se inicia en un ángulo de 45 grados, funciona perfectamente bien. También intenté agregar una fuerza adicional horizontal en otro objeto en mi proyecto original y resultó en un teletransporte nervioso hacia la derecha.

Algo está roto dentro de mi proyecto relacionado con la fuerza horizontal... ¡¿Qué podría ser?!

Esto nos ha vuelto locos a mí y a un brote durante 24 horas y he buscado por todas partes, pero no he encontrado ningún problema similar o soluciones aplicables.

Estoy desarrollando un juego de desplazamiento lateral al estilo mario y el concepto es simple: golpea la caja, una moneda salta con fuerza vertical y horizontal. Este es el ÚNICO código hasta ahora en el script adjunto a la moneda.

 void Start() { forceUp = new Vector2(0, upForce); forceSide = new Vector2(sideForce, 0); GetComponent<Rigidbody2D>().AddForce(forceUp, ForceMode2D.Impulse); GetComponent<Rigidbody2D>().AddForce(forceSide, ForceMode2D.Impulse); }

Este es el código que instancia la moneda en el script de caja:

 private void OnCollisionEnter2D(Collision2D collision) { RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, 1.0f, layerMask); if (!isOpen && hit.collider != null) { isOpened(); Instantiate(openPrize, new Vector3(transform.position.x, transform.position.y+1.0f, transform.position.z), transform.rotation); } }

el problema es: la moneda "subirá" una distancia directamente relacionada con el valor que introduzco en la variable "fuerza ascendente".

La moneda no se moverá horizontalmente en absoluto. Si elevo la variable horizontal hasta un número estúpido como 5000, se teletransportará una corta distancia hacia un lado.

el animador de la casa prefabricada tiene habilitado "Aplicar movimiento raíz".

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Lo descubrí... Hay una configuración en el animador del prefabricado que estoy usando llamada "Aplicar movimiento raíz". Nunca lo he usado, no sé qué hace, pero estaba marcado de forma predeterminada en el activo que importé y eso de alguna manera detenía el movimiento. ¡Gracias por tu ayuda!

over 4 years ago · Santiago Trujillo Report

0

Creo que tu modo de fuerza probablemente no sea correcto.

Documentos :

Aplicar la fuerza de impulso al instante. [...] Este modo es útil para aplicar fuerzas que suceden instantáneamente, como las fuerzas de explosiones o colisiones.

Probablemente ForceMode2D.Force es mejor.

Este modo es útil para configurar física realista donde se necesita más fuerza para mover objetos más pesados.

Pero tal vez sea porque aplicas fuerzas a la vez. Prueba esto:

 // Force up await Task.Delay(TimeSpan.FromSeconds(1)); // Force side
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!