Это желаемое поведение. Когда приложение входит в BG, iOS не начинает освобождать память, это ответственность приложения.
Лучший способ решения проблем с памятью - выполнить профилирование приложения и посмотреть, куда идет память. В большинстве случаев текстуры занимают большой объем памяти, поэтому вы можете думать об уменьшении их размера или использовании сжатия. Другое дело, что вы можете отключить mipmapping для текстур, но это даст только хорошие визуальные результаты, если вы используете текстуры для 2D UI, для 3D это не очень хорошая идея.
Resources.UnloadUnusedAssets()
будет работать только в случае неиспользованных активов, если вы ничего не сделаете, что есть тонкие изменения, которые будут иметь какой-либо эффект.
Один маленький взлом, который вы можете попробовать, - создать пустую сцену и перейти к ней при движении в фоновом режиме. На сцене может быть одна 2D-текстура, показывающая, что приложение находится в фоновом режиме. Затем вы можете позвонить Resources.UnloadUnusedAssets()
и, конечно же, вернуться на главную сцену, возвращаясь на передний план.
Благодарим за отзыв! Я уже думал о создании пустой сцены, и этот способ выглядит довольно хорошо. –