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

200
Views
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 answers
Answer question

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 Report

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 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!