Was ist das UNITY3D-Dateiformat?
Eine .unity3d-Datei ist ein 3D-Spieldaten-Archiv, das Daten für Browser-Spiele speichert, die das Unity-Web-Player-Plugin zum Ausführen benötigten. Dieser Dateityp wurde für die Bereitstellung von mit der Unity-Engine erstellten Spielen im Web verwendet. Eine einzelne .unity3d-Datei enthält kompilierten Spielcode einschließlich Umgebungsdaten, Assets, Objekte, Texturen, Animationen, Beleuchtung und Audio - verpackt als binär serialisierter Container.
Intern beginnen .unity3d-Dateien mit dem ASCII-Tag UnityWeb an Byte-Offset 0 (ältere komprimierte gestreamte Builds) oder UnityFS für neuere Varianten, gefolgt von einem Versionsstring. Dieses Containerformat entwickelte sich später zum Unity AssetBundle (.bundle), das denselben Serialisierungsansatz teilt und noch aktiv genutzt wird.
Das .unity3d-Format ist ein proprietäres Format, das von Unity Technologies erstellt wurde und von der Unity-Spiel-Engine verwendet wird. Unity Web Player - das zum Öffnen von .unity3d-Dateien erforderliche Browser-Plugin - wurde mit Unity 5.4 im Jahr 2016 eingestellt, nachdem Browser-Anbieter die NPAPI-Plugin-Unterstützung vollständig entfernt hatten. Infolgedessen können .unity3d-Dateien in keinem modernen Browser abgespielt werden. Ältere Dateien können mit Community-Tools wie AssetStudio noch inspiziert oder extrahiert werden.
Sicherheit
RISIKO: MEDIUMEine .unity3d ist Daten, die von der Unity-Laufzeit geladen werden, kann aber kompilierte Skripte (Spielcode) enthalten, sodass ein bösartiges oder manipuliertes Bundle, das von einer Unity-App geladen wird, nicht vollständig inert ist. Das größere praktische Risiko ist das umgebende Ökosystem: Das Unity-Web-Player-Plugin ist veraltet und wird nicht mehr gepatcht - installieren Sie es NIEMALS neu oder führen Sie einen alten NPAPI-Browser aus, um diese Dateien abzuspielen. Extrahieren Sie Assets in einem Sandbox-Tool (AssetStudio) anstatt unbekannte Bundles auszuführen, und beziehen Sie Spiele nur aus vertrauenswürdigen Quellen.
Formatdetails
kurz gefasstProgramme zum Öffnen von UNITY3D-Dateien
Technische Details
technische Spezifikation| MIME-Typ | application/vnd.unity |
| Dateisignatur | ASCII „UnityWeb“ an Byte-Offset 0 (komprimierter gestreamter Build); neuere Varianten beginnen mit „UnityFS“ |
| Byte-Reihenfolge | Big-Endian - Unitys Legacy-Serialisierer speichert Mehrbyte-Ganzzahlen in Big-Endian-Reihenfolge |
| Komprimierung | LZMA standardmäßig für Web-Player-gestreamte Builds; spätere Unity-Bundle-Varianten unterstützen auch LZ4 und unkomprimierte Modi |
| Container-Struktur | Proprietärer Binär-Container; nicht ZIP-basiert - Assets und ihr Abhängigkeitsgraph sind in einem flachen serialisierten Layout gespeichert |
| Asset-Typen | Szenen, Meshes, Texturen, Audio-Clips, Shader, kompilierte Skripte (Mono-Bytecode) und Animationsdaten |
| Skript-Speicherung | Kompilierter Mono-C#-Bytecode - Quelldateien sind nicht enthalten; Skripte werden während des Unity-Build-Prozesses in das Bundle gebacken |
| Texturkomprimierung | In DXT- (Desktop), ETC- (mobil) oder anderen plattformnativ GPU-komprimierten Formaten eingebettete Texturen |
| Bereitstellungsmodell | Für HTTP-Streaming konzipiert; der Datei-Header wird zuerst geparst, sodass Assets zu laden beginnen können, bevor der vollständige Download abgeschlossen ist |
| Nachfolgeformat | Unity AssetBundle (.bundle / .assetbundle) - teilt denselben Serialisierungskern und ersetzte .unity3d nach der Einstellung des Unity Web Players |
| Einstellung | Unity Web Player - die einzige Laufzeit, die .unity3d im Browser öffnen kann - wurde in Unity 5.4 (2016) eingestellt; kein moderner Browser unterstützt es |
| Entwickler | Unity Technologies (San Francisco, CA); Format ist proprietär und nicht öffentlich dokumentiert |
| Veröffentlicht | Mid-2000s with the Unity Web Player; Web Player deprecated with Unity 5.4 (2016) |
| Spezifikation | docs.unity3d.com |