Почему этот скрипт замедляет гравитацию hardbodybody2d (Unity) - PullRequest
0 голосов
/ 06 марта 2020

Это скрипт, это простой скрипт горизонтального перемещения.

private Rigidbody2D rb;

public float speed;

private float moveHori;

void Start()
{
    rb = GetComponent<Rigidbody2D>();
}

void Update()
{
    moveHori = Input.GetAxisRaw("Horizontal");
}

void FixedUpdate()
{
    rb.velocity = new Vector2(moveHori * speed, 0) * Time.deltaTime;
} 

Я не знаю, почему гравитация замедляется.

1 Ответ

3 голосов
/ 06 марта 2020

, поскольку вы устанавливаете компонент Y velocity в 0 в

rb.velocity = new Vector2(moveHori * speed, 0) * Time.deltaTime;

, а скорее сохраняете текущую скорость Y, как

rb.velocity = new Vector2(moveHori * speed, rb.velocity.y);

Обратите внимание, что скорость не зависит от частоты кадров и вы не хотите умножать на Time.deltaTime здесь! Скорее отрегулируйте ваш speed так, чтобы это были желаемые единицы Unity в секунду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...