Фриз при первом появлении каждого нового эффекта, второй раз всё гладко
На телефоне в бою заметны короткие фризы: первое появление каждого нового типа эффекта или врага с непривычным материалом даёт заминку в 100–300 мс. Повторные появления тех же эффектов идут гладко. В редакторе на рабочей машине проблема не воспроизводится. Профайлер показывает всплеск в потоке отрисовки, аллокаций почти нет. Что это и как лечится?
- Это подгрузка текстур эффекта с диска при первом обращении к ним: помогает уменьшение разрешения и предзагрузка атласов на экране загрузки уровня
- Фриз даёт сборка мусора при создании объекта эффекта: достаточно завести пул и переиспользовать заранее созданные экземпляры
- Варианты шейдеров компилируются на устройстве при первом использовании материала: их прогревают на экране загрузки и сокращают их число
- Так проявляется первое создание префаба: движок кэширует префаб только после первого Instantiate, поэтому первый вызов всегда заметно дороже
