@keksmr
Unity разработчик

Unity почему OnTriggerStay вызывает много лагов?

у меня есть код
private void OnTriggerStay(Collider other)
    {
        if (enemy == null)
        {
            if (other.gameObject.tag == "Crip")
            {
                if (other.gameObject.GetComponent<Crip>().isMyTeam != gameObject.GetComponent<Crip>().isMyTeam)
                {
                    enemy = other.transform;
                    prior = Priority.Enemy;
                }
            }
            else
                return;
        }
        else
            return;
    }


он весит на 100 ботах почему он вызывает лаги хотя тот же код в OnTriggerEnter не вызывает лагов
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Потому что GetComponent - тяжёлая функция, а она у вас каждый update по два раза вызывается на каждом боте. Можете сохранить у gameObject InstanceId и если он не поменялся, то нечего эту всю логику прогонять заново.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы