Reducing File Size
Unity Manual > Advanced > Reducing File Size

Reducing File Size

"Преждевременная оптимизация — корень всех зол"

- Donald Knuth

Unity post-processes all imported assets

После импорта все файлы проходят постобработку. Таким образом, размер финальной сборки не увеличится от того, что вы храните изображения в многослойном .psd, а не в .jpg. Сохраняйте ваши файлы в том формате, который вам удобен (.mb, .psd, .tiff и т. д., и т. п).

Unity strips out unused assets

Количество ресурсов в папке проекта не влияет на размер сборки игры. Unity очень хорошо определяет, какие ресурсы используются в игре, а какие — нет. Unity проверяет все ссылки на ресурсы перед компиляцией сборки и создаёт список ресурсов, которые нужно включить в игру. Таким образом, можно спокойно держать неиспользуемые ресурсы в папке проекта.

Unity prints an overview of the used file size

После завершения сборки Unity составляет обзор того, какие типы ресурсов создали какого объёма файлы, и выводил список ресурсов, ключённых в сборку.

Посмотреть это можно в Editor.log: Help→Open Editor console log.

Краткий обзор использования места.

Optimizing texture size

Часто текстуры занимают большую часть сборки. Для начала, нужно сжать их во время сборки.

Если это не помогает, можно попробовать уменьшить размер текстур. Этот способ не требует изменения исходных ресурсов. Просто выберите текстуру в Project View и перейдите к настройкам импорта.

Здесь можно установить максимальный размер текстуры который будет использован при импорте текстуры. Это хорошая идея: изменить масштаб объекта, использующего текстуру, а затем менять Maximum Texture Size до тех пор, пока в Scene View не начнёт наблюдаться ухудшение внешнего вида текстуры.


Изменение параметра Maximum Texture Size не изменит исходный ресурс, а скажется лишь на его представлении в игре.

How much memory does my texture take up?

Сжатие Потребление памяти
RGB Compressed DXT10.5 bpp (bytes/pixel)
RGBA Compressed DXT51 bpp
RGB 16bit2 bpp
RGB 24bit3 bpp
Alpha 8bit1 bpp
RGBA 16bit2 bpp
RGBA 32bit4 bpp

Определение общего размера текстуры: width * height * bpp. Добавляем 33%, если используется Mipmaps.

При создании сборки включите опцию Compress textures.

По умолчанию, Unity не сжимает текстуры при импорте, даже если выбрано сжатие DXTC. Это объясняется тем, что сжатие текстур занимает много времени и лучше произвести сжатие при импорте непосредственно в игру (во время сборки). Это можно изменить в настройках программы.

Включение опции Compress Textures в настройках сборки сжимает во время сборки все текстуры, у которых включёна опция DXTC.

Reducing included dlls in the Web Player

When building a Web player it is important to not depend on System.dll or System.Xml.dll. Unity does not include System.dll or System.Xml.dll in the web player installation. That means, if you want to use Xml or some Generic containers which live in System.dll then the required dlls will be included in the web player. This usually adds 1mb to the download size, obviously this is not very good for the distribution of your web player and you should really avoid it. If you need to parse some Xml files, you can use a smaller xml library like this one Mono.Xml.zip. While most Generic containers are contained in mscorlib, Stack<> and few others are in System.dll. So you really want to avoid those.


Как видите, Unity включил System.Xml.dll и System.dll в сборку игры.

Unity включает следующие dll в сборку: mscorlib.dll, Boo.Lang.dll, UnityScript.Lang.dll и UnityEngine.dll.