Unity 2D ¿Por qué mi personaje salta desde diferentes alturas cada vez?
– UnityAssets3Free
hola , por aqui Camilo y para hoy os traigo
esta nueva pregunta
Entonces, mi salto es inconsistente, básicamente cada vez que presiono la barra espaciadora, el personaje salta desde diferentes alturas incluso cuando está parado (sin moverse a la izquierda ni a la derecha), ¿por qué?
aquí está mi código:
public bool onGround = false;
public float JumpHeight;
public Rigidbody2D gravidade;
// Start is called before the first frame update
void Start()
// Update is called once per frame
void Update()
if (onGround == true)
if (Input.GetKey(KeyCode.Space))
gravidade.AddForce(new Vector2(0, JumpHeight * Time.deltaTime), ForceMode2D.Impulse);
void OnCollisionEnter2D(Collision2D outro)
if (outro.gameObject.CompareTag("ground"))
onGround = true;
void OnCollisionExit2D(Collision2D outro)
if (outro.gameObject.CompareTag("ground"))
onGround = false;
3 respuestas 3
No debe multiplicar por el tiempo delta al aplicar una sola fuerza.
Time.deltaTime
es el tiempo de finalización del tiempo en segundos desde el último fotograma. Comprobar el documentación
Este tiempo no es constante. MonoBehaviour.FixedUpdate usa fixedDeltaTime en lugar de deltaTime, este fixedDeltaTime y el Actualización fija se utiliza generalmente para la física y es un tema bastante avanzado.
utilizar una valor constante al revés de Time.deltaTime
tener siempre la misma altura de salto.
Es diferente porque se calcula a partir del deltaTime, que es incoherente (tiempo entre dos fotogramas renderizados si no es incorrecto) y produce un valor ligeramente diferente cada vez, que combinado con la multiplicación tiene una desviación mayor de la media. Espero haber ayudado a aclarar esto, abrazos!
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
sin mas,hasta la proxima