Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
Cómo agregar una fuerza como una patada

El problema es simple, pero soy nuevo en Unity.

Quiero agregar una fuerza al hacer clic en el objeto. Como una patada.

Este es mi código:

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class box : MonoBehaviour { Rigidbody2D rb; void Start() { rb = GetComponent<Rigidbody2D>(); } void Update() { if(Input.GetMouseButtonDown(0)) { rb.AddForce(Vector2.up * 17f, ForceMode2D.Impulse); } } }

Pero no funciona porque solo agrega una fuerza genérica.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Esta pregunta no está clara, debe proporcionar más información, pero si desea implementar una fuerza similar a una "patada" (supongo que como en el fútbol), entonces debe calcular la dirección desde la que está pateando la pelota.

Sugiero algo como esto:

 rb.AddForce(_kickDirection * _kickForce, ForceMode2D.Impulse)

kickDirection es hacia donde deseas patear.

over 4 years ago · Santiago Trujillo Denunciar

0

Tu código funciona bien. Solo asegúrese de tener su caja y los componentes Rigidbody2D conectados a su objeto de juego, así:

ingrese la descripción de la imagen aquí

No es cuando hace clic en el objeto, sino donde sea que haga clic de acuerdo con su código. Si esto no es lo que querías, necesitas explicar mejor tu pregunta.

Editar:

Para proporcionar una "fuerza de patada", necesita saber dónde golpeó el clic. Encuentra algún código para eso:

 public class click : MonoBehaviour { void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; Debug.DrawRay(ray.origin, ray.direction * 20, Color.white); if (Physics.Raycast(ray, out hit)){ if (hit.collider != null) { Debug.Log("hit!"); } else { Debug.Log("no hit"); } } } } }

Debe asegurarse de que su objetivo tenga un componente colisionador. Con hit.point puedes obtener la posición. Revisa los documentos .

Una vez que tenga la posición de golpe, puede definir en qué dirección desea aplicar la fuerza. Para el ejemplo de fuerza de patada, puede ser la dirección opuesta a la que va desde el centro de su caja hasta el punto de golpe: Vector3 forceDir = boxTransform.position - hit.point;

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda