Vad är filformatet UNITY3D?
En .unity3d-fil är ett 3D-speldataarkiv som lagrar data för webbläsarspel som krävde insticksprogrammet Unity Web Player för att köras. Denna filtyp användes för att distribuera spel byggda med Unity-motorn till webben. En enskild .unity3d innehåller kompilerad spelkod inklusive miljödata, resurser, objekt, texturer, animationer, belysning och ljud - paketerat som en binär serialiserad behållare.
Internt börjar .unity3d-filer med ASCII-taggen UnityWeb vid byte-offset 0 (äldre komprimerade strömmade byggen) eller UnityFS för nyare varianter, följt av en versionssträng. Detta behållarformat utvecklades senare till Unity AssetBundle (.bundle), som delar samma serialiseringsmetod och fortfarande används aktivt.
Formatet .unity3d är ett proprietärt format skapat av Unity Technologies och används av spelmotorn Unity. Unity Web Player - insticksprogrammet som krävdes för att öppna .unity3d-filer - fasades ut i och med Unity 5.4 år 2016, varefter webbläsartillverkare tog bort stödet för NPAPI-insticksprogram helt. Som ett resultat kan .unity3d-filer inte spelas i någon modern webbläsare. Äldre filer kan fortfarande inspekteras eller extraheras med hjälp av community-verktyg som AssetStudio.
Säkerhet & trygghet
RISK: MEDIUMEn .unity3d är data som laddas av Unity-körtidsmiljön, men den kan innehålla kompilerade skript (spelkod), så en skadlig eller manipulerad bundle som laddas av en Unity-app är inte helt inert. Den större praktiska risken är det omgivande ekosystemet: Unity Web Player-insticksprogrammet är dött och opatchat, så återinstallera det ALDRIG och kör aldrig en gammal NPAPI-webbläsare för att spela dessa filer. Extrahera resurser i ett sandlådeverktyg (AssetStudio) snarare än att köra okända bundles, och hämta endast spel från källor du litar på.
Formatdetaljer
i ett nötskalProgram som öppnar UNITY3D-filer
Tekniska detaljer
djup specifikation| MIME-typ | application/vnd.unity |
| Filsignatur | ASCII «UnityWeb» vid byte-offset 0 (komprimerat strömmat bygge); nyare varianter börjar med «UnityFS» |
| Byteordning | Big-endian - Unitys äldre serialiserare lagrar heltal med flera byte i big-endian-ordning |
| Komprimering | LZMA som standard för Web Player-strömmade byggen; senare Unity bundle-varianter stöder även LZ4 och okomprimerade lägen |
| Behållarstruktur | Proprietär binär behållare; inte ZIP-baserad - resurser och deras beroendegraf lagras i en platt serialiserad layout |
| Resurstyper | Scener, meshar, texturer, ljudklipp, shaders, kompilerade skript (Mono-bytecode) och animationsdata |
| Skriptlagring | Kompilerad Mono C#-bytecode - källfiler ingår inte; skript bakas in i bundlen under Unity-byggprocessen |
| Texturkomprimering | Texturer inbäddade i DXT (skrivbord), ETC (mobil) eller andra plattformsspecifika GPU-komprimerade format |
| Leveransmodell | Designad för HTTP-strömning; filhuvudet tolkas först så att resurser kan börja laddas innan hela nedladdningen är klar |
| Efterföljande format | Unity AssetBundle (.bundle / .assetbundle) - delar samma serialiseringskärna och ersatte .unity3d efter att Unity Web Player avvecklades |
| Utfasning | Unity Web Player - den enda körtidsmiljön som kan öppna .unity3d i webbläsaren - avvecklades i Unity 5.4 (2016); ingen modern webbläsare stöder det |
| Utvecklare | Unity Technologies (San Francisco, CA); formatet är proprietärt och inte offentligt dokumenterat |
| Släppt | Mid-2000s with the Unity Web Player; Web Player deprecated with Unity 5.4 (2016) |
| Specifikation | docs.unity3d.com |