Guida allo sviluppo del co-impacchettamento di applicazione e dati
L'LCC Unity SDK supporta la separazione dell'applicazione dai dati. Tuttavia, nello sviluppo reale delle applicazioni, a volte è necessario impacchettare e pubblicare l'applicazione insieme ai dati della scena 3DGS. Questo documento illustra gli approcci di co-impacchettamento per PC e Android.
Caricamento dinamico dei dati in fase di esecuzione su PC
L'SDK carica i dati in fase di esecuzione tramite il metodo Load(); il percorso specificato deve essere un percorso assoluto, ad esempio G:\Data\xxx.lcc2.
Per distribuire insieme l'applicazione e i dati, puoi concatenare il percorso di esecuzione dell'applicazione con il percorso relativo dei dati della scena LCC in un percorso assoluto, come segue:
- Ottieni il percorso di esecuzione dell'applicazione tramite
Application.dataPathdi Unity. - Concatena il percorso relativo dei dati con il percorso di esecuzione nel percorso assoluto dei dati della scena 3DGS.
L'esempio di codice è il seguente:
using UnityEngine;
using LCCCore;
using XGrids.LCC;
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
void Start()
{
m_renderer = m_manager.GetRender(this.transform);
#if !UNITY_EDITOR
string _dataPath = Application.dataPath;
string _dataPath2 = _dataPath + "/data/meta.lcc2"; // Concatena il percorso relativo del file LCC
m_FilePath = _dataPath2.Replace('/', '\\');
#endif
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback);
}
}
Nota:
- La concatenazione del percorso sopra è racchiusa in
#if !UNITY_EDITOR: nello stato Editor di Unity, ilm_FilePathspecificato nell'Inspector (dati di sviluppo locali) viene usato direttamente; solo nel runtime pubblicato viene concatenato il percorso relativo sotto la directory di esecuzione dell'applicazione.- In una build PC,
Application.dataPathpunta alla cartella<AppName>_Datasotto la directory dell'applicazione, quindi il percorso relativo dei dati deve corrispondere alla posizione in cui i dati verranno copiati in seguito.- I percorsi Windows usano le barre rovesciate
\; l'esempio usaReplace('/', '\\')per convertirle.
Copia i dati della scena LCC in una directory specificata
Dopo aver compilato normalmente il progetto Unity e aver compilato/pubblicato l'applicazione, la struttura della directory dell'applicazione generata è mostrata di seguito.

Struttura della directory dell'applicazione generata dopo la build e la pubblicazione di Unity
Secondo il percorso relativo LCC data/meta.lcc2 nel codice, devi copiare i dati della scena LCC nella posizione corrispondente sotto la directory generata dell'applicazione, come mostrato di seguito.

Copia i dati della scena LCC nella directory dell'applicazione secondo il percorso relativo
Impacchetta l'intera directory
Impacchetta l'intera directory dell'applicazione (compressione Zip) e distribuiscila agli utenti che ne hanno bisogno. Dopo che l'utente l'ha estratta ed esegue il Viewer, i dati della scena nella directory specificata possono essere caricati.
Flusso di lavoro di impacchettamento Android
Android usa lo stesso approccio del PC, ma il percorso dei dati necessita di una piccola modifica: usa Application.persistentDataPath come directory radice dei dati.
Modifica lo script di rendering per concatenare il percorso dei dati con persistentDataPath. Nota che il tipo di piattaforma viene impostato separatamente tramite SetPlatformType() (prima di GetRender()), e Load() riceve solo il percorso e i callback:
void Start()
{
// Il tipo di piattaforma deve essere impostato prima di GetRender()
m_manager.SetPlatformType(PlatformType.Pico);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(
$"{Application.persistentDataPath}/LccData/meta.lcc2",
onLoadProgress,
onLoadCallback);
}
Passaggi di impacchettamento e distribuzione:
- Salva il codice e collega il dispositivo mobile al computer in cui si trova il progetto Unity usando un cavo USB 3.0.
- Nella barra dei menu di Unity, seleziona File → Impostazioni build → Build per ottenere l'APK.
- Copia l'APK sul dispositivo mobile e installalo.
- Dopo l'installazione, apri prima l'app una volta affinché il sistema crei la directory per il nome del pacchetto corrispondente, poi chiudi l'app.
- Crea una cartella
LccDatasotto la directory per il nome del pacchetto corrispondente e copia i dati LCC in quella cartella (il percorso è generalmente archiviazione del dispositivo Android → Android → data → BundleID dell'app → Files; consulta il percorso di installazione dell'app Android per la directory specifica). - Apri di nuovo l'app e il contenuto LCC verrà presentato sul telefono o sul dispositivo VR.

Crea una cartella LccData sotto la directory del nome del pacchetto dell'app Android e copia i dati LCC
Note
- iOS non supporta l'approccio di caricamento dinamico da directory locale descritto sopra. iOS non consente a un'applicazione di leggere tutti i file sotto una cartella specificata; può leggere solo un singolo file specificato.
- Su mobile e VR, si consiglia di posizionare i dati su un server e di prelevarli dal server in fase di esecuzione, piuttosto che impacchettare direttamente i dati nel pacchetto dell'applicazione APK — quest'ultimo rende il pacchetto dell'applicazione molto grande e gonfio.