Wat is het UNITY3D-bestandsformaat?
Een .unity3d-bestand is een 3D-gamegegevensarchief waarin gegevens worden opgeslagen voor browsergames die de Unity Web Player-plugin vereisten om te kunnen draaien. Dit type bestand werd gebruikt voor het implementeren van games die met de Unity-engine voor het web waren gebouwd. Een enkele .unity3d bevat gecompileerde gamecode inclusief omgevingsgegevens, assets, objecten, texturen, animaties, verlichting en audio - verpakt als een binair geserialiseerde container.
Intern beginnen .unity3d-bestanden met de ASCII-tag UnityWeb op byte-offset 0 (oudere gecomprimeerde gestreamde builds) of UnityFS voor nieuwere varianten, gevolgd door een versiereeks. Dit containerformaat evolueerde later naar de Unity AssetBundle (.bundle), die dezelfde serialisatiemethode deelt en nog steeds actief in gebruik is.
Het .unity3d-formaat is een eigen formaat ontwikkeld door Unity Technologies en wordt gebruikt door de Unity-game-engine. Unity Web Player - de browserplugin die nodig was om .unity3d-bestanden te openen - werd in 2016 met Unity 5.4 uitgefaseerd, waarna browserleveranciers de ondersteuning voor NPAPI-plugins volledig stopzetten. Als gevolg hiervan kunnen .unity3d-bestanden in geen enkele moderne browser worden afgespeeld. Verouderde bestanden kunnen nog steeds worden geïnspecteerd of uitgepakt met behulp van community-tools zoals AssetStudio.
Beveiliging & veiligheid
RISICO: MEDIUMEen .unity3d is data die wordt geladen door de Unity-runtime, maar het kan gecompileerde scripts (gamecode) bevatten, dus een kwaadaardige of gemanipuleerde bundel die door een Unity-app wordt geladen, is niet volledig inert. Het grotere praktische risico is het omringende ecosysteem: de Unity Web Player-plugin is dood en wordt niet meer gepatcht, dus installeer deze NOOIT opnieuw en gebruik geen oude NPAPI-browser om deze bestanden af te spelen. Extraheer assets in een sandbox-tool (AssetStudio) in plaats van onbekende bundels uit te voeren, en verkrijg alleen games van bronnen die u vertrouwt.
Formaatdetails
in een notendopProgramma's die UNITY3D-bestanden openen
Technische details
diepe specificaties| MIME-type | application/vnd.unity |
| Bestandssignatuur | ASCII „UnityWeb” op byte-offset 0 (gecomprimeerde gestreamde build); nieuwere varianten beginnen met „UnityFS” |
| Byte-volgorde | Big-endian - de legacy-serializer van Unity slaat integers van meerdere bytes op in big-endian volgorde |
| Compressie | Standaard LZMA voor Web Player gestreamde builds; latere Unity-bundelvarianten ondersteunen ook LZ4 en niet-gecomprimeerde modi |
| Containerstructuur | Eigen binaire container; niet op ZIP gebaseerd - assets en hun afhankelijkheidsgrafiek worden opgeslagen in een platte geserialiseerde lay-out |
| Asset-typen | Scènes, meshes, texturen, audioclips, shaders, gecompileerde scripts (Mono-bytecode) en animatiegegevens |
| Scriptopslag | Gecompileerde Mono C#-bytecode - bronbestanden zijn niet inbegrepen; scripts worden tijdens het Unity-bouwproces in de bundel gebakken |
| Textuurcompressie | Texturen ingebed in DXT (desktop), ETC (mobiel) of andere platform-native GPU-gecomprimeerde formaten |
| Leveringsmodel | Ontworpen voor HTTP-streaming; de bestandsheader wordt eerst geparseerd zodat assets kunnen beginnen met laden voordat de volledige download is voltooid |
| Opvolgend formaat | Unity AssetBundle (.bundle / .assetbundle) - deelt dezelfde serialisatiekern en verving .unity3d nadat Unity Web Player werd stopgezet |
| Uitfasering | Unity Web Player - de enige runtime die .unity3d in de browser kan openen - werd stopgezet in Unity 5.4 (2016); geen enkele moderne browser ondersteunt dit |
| Ontwikkelaar | Unity Technologies (San Francisco, CA); formaat is eigendom en niet publiekelijk gedocumenteerd |
| Uitgebracht | Mid-2000s with the Unity Web Player; Web Player deprecated with Unity 5.4 (2016) |
| Specificatie | docs.unity3d.com |