Многие спрайты должны загружаться на мобильные устройства в unity3D.

В моей 2D-игре есть 3 персонажа, каждый из которых имеет 7 типов анимации, содержащихся во многих кадрах. Это около 1050 кадров (спрайтов) для всех трех анимаций персонажей. Я делаю атлас по этим спрайтам, но сейчас это около 60 атласов 2048x2048 в сжатом формате.

Итак, на некоторых устройствах, которые я тестировал, игра не загружается, но на некоторых других устройствах она есть. Я думаю, это из-за слишком большого количества атласов, которые они не могут загрузить в оперативную память этих мобильных устройств.

Я попытался сделать эти кадры как можно меньше и поместить их в атлас, но, как я уже говорил, количество атласов равно 60, и я не могу уменьшить количество кадров или их размер больше, чем это.

Как вы думаете, ребята, и что я могу сделать?


person ATHellboy    schedule 13.02.2016    source источник
comment
Вам нужны ВСЕ кадры все время? В противном случае просто загрузите текущий необходимый атлас + все, что вам нужно для следующих кадров рендеринга, а затем агрессивно очистите загруженные кадры, когда они вам больше не нужны.   -  person JustSid    schedule 13.02.2016
comment
На самом деле Unity3D делает это автоматически. Так что мне не нужно контролировать визуализацию атласов.   -  person ATHellboy    schedule 13.02.2016


Ответы (1)


На мобильных устройствах существует ограничение на количество изображений, загружаемых в оперативную память. Плохая идея — импортировать спрайт с размером 2048*2048, а затем сжимать его до размера, например, 512*512. Вы должны уменьшить размер этих спрайтов в программе редактирования изображений, а затем вы можете объединить 16 изображений 512 * 512 и сделать спрайт 2048 * 2048. Теперь вы просто загружаете 1 изображение в мобильную память вместо 16 изображений.

person Hossein Rashno    schedule 13.02.2016
comment
Эти атласы имеют разрешение 2048x2048. Я объединяю несколько спрайтов в одно изображение 2048x2048 :) - person ATHellboy; 13.02.2016