Che cos'è il formato di file UNITY3D?
Un file .unity3d è un archivio di dati di gioco 3D che memorizza informazioni per i giochi via browser che richiedevano il plugin Unity Web Player per essere eseguiti. Questo tipo di file veniva utilizzato per distribuire sul web giochi creati con il motore Unity. Un singolo .unity3d contiene il codice di gioco compilato, inclusi dati ambientali, asset, oggetti, texture, animazioni, illuminazione e audio - confezionati come un contenitore binario serializzato.
Internamente, i file .unity3d iniziano con il tag ASCII UnityWeb all'offset di byte 0 (vecchie build compresse in streaming) o UnityFS per le varianti più recenti, seguiti da una stringa di versione. Questo formato contenitore si è successivamente evoluto nell'Unity AssetBundle (.bundle), che condivide lo stesso approccio di serializzazione ed è tuttora in uso attivo.
Il formato .unity3d è un formato proprietario creato da Unity Technologies ed è utilizzato dal motore di gioco Unity. Unity Web Player - il plugin del browser necessario per aprire i file .unity3d - è stato deprecato con Unity 5.4 nel 2016, dopodiché i produttori di browser hanno rimosso completamente il supporto per i plugin NPAPI. Di conseguenza, i file .unity3d non possono essere riprodotti in alcun browser moderno. I file legacy possono ancora essere ispezionati o estratti utilizzando strumenti della comunità come AssetStudio.
Sicurezza e incolumità
RISCHIO: MEDIUMUn .unity3d è un dato caricato dal runtime Unity, ma può contenere script compilati (codice di gioco), quindi un bundle dannoso o manomesso caricato da un'app Unity non è puramente inerte. Il rischio pratico maggiore è l'ecosistema circostante: il plugin Unity Web Player è morto e non patchato, quindi non reinstallarlo MAI né utilizzare un vecchio browser NPAPI per riprodurre questi file. Estrai gli asset in uno strumento sandbox (AssetStudio) piuttosto che eseguire bundle sconosciuti, e ottieni giochi solo da fonti di cui ti fidi.
Dettagli del formato
in sintesiProgrammi che aprono file UNITY3D
Dettagli tecnici
specifiche approfondite| Tipo MIME | application/vnd.unity |
| Firma del file | ASCII «UnityWeb» all'offset di byte 0 (build compressa in streaming); le varianti più recenti iniziano con «UnityFS» |
| Ordine dei byte | Big-endian - il serializzatore legacy di Unity memorizza gli interi multi-byte in ordine big-endian |
| Compressione | LZMA per impostazione predefinita per le build in streaming di Web Player; le varianti successive dei bundle Unity supportano anche LZ4 e modalità non compresse |
| Struttura del contenitore | Contenitore binario proprietario; non basato su ZIP - gli asset e il loro grafico delle dipendenze sono memorizzati in un layout serializzato piatto |
| Tipi di asset | Scene, mesh, texture, clip audio, shader, script compilati (bytecode Mono) e dati di animazione |
| Archiviazione script | Bytecode Mono C# compilato - i file sorgente non sono inclusi; gli script vengono incorporati nel bundle durante il processo di build di Unity |
| Compressione texture | Texture incorporate in DXT (desktop), ETC (mobile) o altri formati compressi da GPU nativi della piattaforma |
| Modello di distribuzione | Progettato per lo streaming HTTP; l'intestazione del file viene analizzata per prima in modo che gli asset possano iniziare a caricarsi prima che il download completo sia terminato |
| Formato successore | Unity AssetBundle (.bundle / .assetbundle) - condivide lo stesso core di serializzazione e ha sostituito .unity3d dopo la dismissione di Unity Web Player |
| Deprecazione | Unity Web Player - l'unico runtime in grado di aprire .unity3d nel browser - è stato interrotto in Unity 5.4 (2016); nessun browser moderno lo supporta |
| Sviluppatore | Unity Technologies (San Francisco, CA); il formato è proprietario e non documentato pubblicamente |
| Rilasciato | Mid-2000s with the Unity Web Player; Web Player deprecated with Unity 5.4 (2016) |
| Specifica | docs.unity3d.com |