Почему мой игрок перестает двигаться вперед случайным образом при Z = 990? - PullRequest
0 голосов
/ 07 января 2019

У меня есть игра, в которой мой игрок должен двигаться вперед без остановки, иногда он перестает двигаться при Z = 990, и если я немного переместил его в редактор, он снова начнет двигаться.

EX: https://youtu.be/A0FB595AdHI

void FixedUpdate () {

    if(forwardSpeed < maxSpeed)
    {
        forwardSpeed += Time.deltaTime * speedIncrementor;
    }

    rb.velocity = new Vector3(0, rb.velocity.y, forwardSpeed * Time.deltaTime);

    if (forwardSpeed > maxSpeed)
    {
        forwardSpeed = maxSpeed;
    }
}

1 Ответ

0 голосов
/ 08 января 2019

Time.deltaTime НЕ является физическим временным шагом.

Time.deltatime (продолжительность последнего кадра) должен использоваться только один раз за вызовы кадра, например Обновить () звонки.

Time.fixedDeltaTime следует использовать только в FixedUpdate (), так как это время выборки физического цикла

Если это не решит проблему, вы можете просто использовать логику перезапуска логики местности. Это означает, что он начнет работать с того момента, когда ваш игровой объект начнет двигаться

...