Управление вращением агента navmesh, приводящее к странному поведению - PullRequest
1 голос
/ 21 октября 2019

У меня есть агент navmesh, я не был доволен тем, как он обновил свое вращение (всегда был немного выключен), поэтому я выключил его и сделал это сам.

Это работает очень хорошо, однако когдаЯ запускаю игру со скоростью, в 3-4 раза превышающей скорость (управляющая игра), они иногда бездействуют в течение 0,5-1 секунды, а затем продолжают идти, я предполагаю, что это вызвано этим сценарием.

Imпочти уверен, когда они стоят на месте или собираются повернуть.

void LateUpdate()
{
    if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
    {
        transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
    }
}

1 Ответ

0 голосов
/ 21 октября 2019

Очевидно, это происходило при расчете пути, поэтому добавление этого решило это:

 void LateUpdate()
{
    if (agent.hasPath)
    {
        if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
        {
            transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...