Что такое формат файла UNITY3D?
Файл .unity3d - это архив данных 3D-игры, в котором хранятся данные для браузерных игр, требовавших для работы плагин Unity Web Player. Этот тип файлов использовался для развертывания в вебе игр, созданных на движке Unity. Один файл .unity3d содержит скомпилированный игровой код, включая данные окружения, ассеты, объекты, текстуры, анимации, освещение и аудио, упакованные в бинарный сериализованный контейнер.
Внутренне файлы .unity3d начинаются с ASCII-тега UnityWeb со смещением байта 0 (старые сжатые потоковые сборки) или UnityFS для более новых вариантов, за которыми следует строка версии. Этот формат контейнера позже превратился в Unity AssetBundle (.bundle), который использует тот же подход к сериализации и до сих пор активно применяется.
Формат .unity3d является проприетарным форматом, созданным Unity Technologies и используемым игровым движком Unity. Unity Web Player - браузерный плагин, необходимый для открытия файлов .unity3d, - был признан устаревшим в Unity 5.4 в 2016 году, после чего разработчики браузеров полностью прекратили поддержку плагинов NPAPI. В результате файлы .unity3d нельзя воспроизвести ни в одном современном браузере. Устаревшие файлы все еще можно просмотреть или извлечь с помощью инструментов сообщества, таких как AssetStudio.
Безопасность и защита
РИСК: MEDIUMФайл .unity3d - это данные, загружаемые средой выполнения Unity, но он может содержать скомпилированные скрипты (игровой код), поэтому вредоносный или подделанный бандл, загруженный приложением Unity, не является полностью инертным. Больший практический риск представляет окружающая экосистема: плагин Unity Web Player мертв и не получает обновлений безопасности, поэтому НИКОГДА не переустанавливайте его и не запускайте старые браузеры с поддержкой NPAPI для игры в эти файлы. Извлекайте ресурсы в изолированных инструментах (AssetStudio), а не запускайте неизвестные бандлы, и получайте игры только из доверенных источников.
Детали формата
в двух словахПрограммы, открывающие файлы UNITY3D
Технические подробности
глубокая спецификация| MIME-тип | application/vnd.unity |
| Сигнатура файла | ASCII «UnityWeb» со смещением байта 0 (сжатая потоковая сборка); более новые варианты начинаются с «UnityFS» |
| Порядок байтов | Big-endian - устаревший сериализатор Unity хранит многобайтовые целые числа в порядке от старшего к младшему |
| Сжатие | LZMA по умолчанию для потоковых сборок Web Player; более поздние варианты бандлов Unity также поддерживают LZ4 и несжатые режимы |
| Структура контейнера | Проприетарный бинарный контейнер; не основан на ZIP - ресурсы и их граф зависимостей хранятся в плоском сериализованном виде |
| Типы ресурсов | Сцены, меши, текстуры, аудиоклипы, шейдеры, скомпилированные скрипты (байт-код Mono) и данные анимации |
| Хранение скриптов | Скомпилированный байт-код Mono C# - исходные файлы не включены; скрипты вшиваются в бандл в процессе сборки Unity |
| Сжатие текстур | Текстуры встроены в форматах DXT (ПК), ETC (мобильные устройства) или других нативных для платформы форматах со сжатием GPU |
| Модель доставки | Разработан для потоковой передачи по HTTP; заголовок файла анализируется первым, чтобы ресурсы могли начать загружаться до завершения полной закачки |
| Формат-преемник | Unity AssetBundle (.bundle / .assetbundle) - использует то же ядро сериализации и заменил .unity3d после прекращения поддержки Unity Web Player |
| Статус поддержки | Unity Web Player - единственная среда выполнения, способная открывать .unity3d в браузере, - была упразднена в Unity 5.4 (2016); ни один современный браузер ее не поддерживает |
| Разработчик | Unity Technologies (Сан-Франциско, Калифорния); формат является проприетарным и публично не задокументирован |
| Выпущен | Mid-2000s with the Unity Web Player; Web Player deprecated with Unity 5.4 (2016) |
| Спецификация | docs.unity3d.com |