Проблема производительности Starling SetChildIndex
У меня проблема с производительностью Sprite.setChildIndex
, Я должен показать мир, который состоит из множества маленьких изображений. (около 10.000)
Чтобы добиться максимальной производительности, я использую пул изображений, и все изображения всегда отображаются в списке отображения одного Sprite, поэтому мне не нужно добавлять и удалять изображения.
Если я хочу отобразить новый Регион мира, мне нужно только переместить изображения на новую позицию. Этот процесс действительно быстрый и занимает около 6 мс.
Но проблема в том, что порядок изображений в Списке отображения важен для меня. Из-за этого я должен использовать setChildIndex, чтобы изменить порядок изображений. Процесс установки изображений в правильное положение в списке отображения (setChildIndex) оказывает глубокое влияние на производительность, поэтому мне нужно около 60 мс для отображения нового региона. У вас есть идея, как оптимизировать процесс или есть альтернатива методу setChildIndex?
1 ответ
Вы можете дать каждому Региону мира свой собственный контейнер и поместить этот контейнер в мировой контейнер. Таким образом, вы можете установить ChildIndex или swapChildren с группой, скажем, 500 изображений, а не 10000. И, если вы хотите загрузить новый регион, вы можете просто установить ChildIndex на весь контейнер региона (внутри контейнера мира). Это оптимизирует загрузку карты, вместо того, чтобы обращать внимание на все 10000 спрайтов.