SweetLou
@SweetLou

Unity. Тормозит игра при соприкосновении двух коллайдеров?

Всем доброго дня. Новичок, делаю 2d кликер на Unity, есть gameObject (корзина). при тапе по экрану в нее падают фрукты. На корзине висит rigidbody и edge collider, фрукты - префабы, на них висит rigidbody и polygon collider. После билда тестового апк после появления 3-4 фруктов в корзине, все начинает жутко лагать. Можно уничтожать объекты при появлении их в корзине, но хочется, чтобы они там болтались, пока корзина не переполнится. Те объекты, которые пролетают мимо корзины, уничтожаются с помощью дополнительного edge коллайдера со скриптом на нем.
Как понять из-за чего идут лаги? И как исправить все это дело.
Прошу прощение за корявое объяснение, я новичок в этом деле.
  • Вопрос задан
  • 347 просмотров
Решения вопроса 1
@rPman
Безотносительно того что у вас за платформа, язык разработки, используемый фреймворк и прочее,на текущий момент не существует железа (а мобильники в этом деле сильно ограничены) способное выводить прозрачные спрайты (текстуры) друг над другом без потери производительности. Почти наверняка у вас там получается несколько прозрачных текстур (помимо фруктов еще интерфейс небось воткнули 2-3 штуки), вы превышаете лимит, после которого вместо аппаратного наложения начинает работать софтварный.

Универсальное решение - после того как фрукт упал в корзину, дорисовывайте его в общую текстуру всех упавших в нее фруктов, а сам объект удаляйте. Таким образом у вас в корзине может лежать любое их количество. Точно так же можете считать область коллизий для оценки, куда падать новому фрукту, просто меняя конфигурацию одного объекта, вместо того чтобы заставлять машину каждый раз обсчитатывать кучу объектов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Как понять из-за чего идут лаги?

Включить профайлер, встроенный в юнити, и вдумчиво смотреть на выдаваемые им данные
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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