Trail Renderer не работает должным образом, когда timeScale установлен в 0 - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу использовать TrailRenderer, когда моя игра приостановлена, но так как timeScale равен 0, в результате deltaTime равен 0. Это привело к тому, что TrailRenderer не функционирует (хвост никогда не умирает).

Я не нашел ни одногопараметр, чтобы можно было вручную установить продолжительность обновления или вызвать обновление TrailRenderer.

Как и в Animator, у нас есть возможность обновить его в «UnscaledDeltaTime», как я могу сделать это для TrailRenderer?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Существует значение для Time.unscaledDeltaTime, которое вы можете использовать.

На форумах Unity есть сообщение , описывающее подобную особенность с Time.unscaledTime иTime.realtimeSinceStartup.ОП указывает, что они используют в нижней части поста:

float lastFrameRealtimeSinceStartup;
float unscaledTimeWhilePlaying;

void Update() {

   float dRealtime = Time.realtimeSinceStartup - lastFrameRealtimeSinceStartup;
   if (dRealtime > (1.0f / 20.0f)) {
       //Assume the high dTime is due to the game being paused or lost focus
       dRealtime = 1.0f / 20.0f; //Set it to a reasonable time (20 FPS)
    }
    unscaledTimeWhilePlaying += dRealtime;
    lastFrameRealtimeSinceStartup = Time.realtimeSinceStartup;

}
0 голосов
/ 26 февраля 2019

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

Возможно, подумайте о том, как вы приостанавливаете игру, и посмотрите, действительно ли timeScale является вашим лучшимрешение.

Этот вопрос также возник здесь Как заставить TrailRenderer работать, когда timeScale равен 0 в Unity? .

Похоже, это невозможно.

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