Можно ли это сделать?
Вот код для моих прыжков:
void FixedUpdate(){
if(!takingDamage){
float move = Input.GetAxis("Horizontal");
body.velocity = new Vector2(move * speed, body.velocity.y);
if (jumping){
body.AddForce(new Vector2(0f, jumpForce), ForceMode2D.Impulse);
onGround = false;
}
}
}
Я уже пробовал возиться с гравитацией, снижая скорость, увеличивая массу ... Все, что яdo, чтобы уменьшить расстояние, также уменьшает высоту, но высота именно там, где я хочу, чтобы она была ...
Решением было проверить, находился ли персонаж на земле, при установке горизонтальной скорости и уменьшениидобавленная скорость, вот как логика с этим изменением:
void FixedUpdate(){
if(!takingDamage){
float move = Input.GetAxis("Horizontal");
if(onGround){
body.velocity = new Vector2(move * speed, body.velocity.y);
} else {
body.velocity = new Vector2(move * (speed * 0.7f), body.velocity.y);
}
if (jumping){
body.AddForce(new Vector2(0f, jumpForce), ForceMode2D.Impulse);
onGround = false;
}
}
}