Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

623
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda