alex4answ
@alex4answ

Почему игра зависает при OnTriggerEnter?

Добрый день, не могу понять почему игра зависает когда у игрока OnTriggerEnter.

Передвигаю игрока на большой скорости:
void FixedUpdate() {
        if (currentWalk != Direction.NONE)
        {
            checkDirection(); // когда distance <0.1f условие выше не сработает, останавливаю движение
            transform.position = Vector3.MoveTowards(transform.position, nextPosition, speed * Time.fixedDeltaTime);  //speed = 25f;
        }
    }


nextPosition = Vector3(0f,0f,7f); // изначально объект на точках 0,0,0, тоесть просто двигаем его на 7 едениц по Z

Объект isKinematic - true, коллайдер есть, не триггер
Объект триггер - isTrigger - true, тэг - finish

void OnTriggerEnter(Collider collider)
    {
        if (collider.tag == "Finish")
        {
            success.SetActive(true); //Пробовал сюда любой GameObject, передаю по ссылке в редакторе
        }
    }


Просто ужасно зависает при столкновении (только на дроид телефоне), почему это может быть?

Пробовал двигать объект и через Rigidbody и в Update, и делать его физическим (убирать кинематику и тп) в любом случае игра зависает на 0.5-1 секунду

Подскажите пожалуйста, как с этим бороться ?

Вообще, даже если делать не SetActive, а выводить в логи, все равно зависает.
Уменьшил скорость с 25 до 5 (speed), все хорошо, но эта скорость обязательна, что можно в этом случае сделать?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
зависает это прям вот фриз или крашится сразу?

вы пробовали в редакторе проверить/повторить подняв скорость до фантастической?

с устройства лог через Logcat собирали? смотрели что там?

Уверены что ничего OnTriggerEnter() не влияет. может у вас есть код на void OnTriggerExit() и при большой скорости ВЫЛЕТАЕТ из тригера и срабатывает еще какая то логика.

Из описанного ничего явного что могло бы ломать игру - нет. ищите глубже. упрощайте проверочный пример. отладка и поиск. удачи))
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы