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