Entwicklungsanleitung zum gemeinsamen Paketieren von Anwendung und Daten
Das LCC Unity SDK unterstützt die Trennung der Anwendung von den Daten. In der tatsächlichen Anwendungsentwicklung müssen Sie die Anwendung jedoch manchmal zusammen mit den 3DGS-Szenendaten paketieren und veröffentlichen. Dieses Dokument stellt die Ansätze zum gemeinsamen Paketieren für PC und Android vor.
Dynamisches Datenladen zur PC-Laufzeit
Das SDK lädt Daten zur Laufzeit über die Methode Load(); der angegebene Pfad muss ein absoluter Pfad sein, z. B. G:\Data\xxx.lcc2.
Um Anwendung und Daten gemeinsam zu verteilen, können Sie den Ausführungspfad der Anwendung mit dem relativen Pfad der LCC-Szenendaten zu einem absoluten Pfad verketten, wie folgt:
- Den Ausführungspfad der Anwendung über
Application.dataPathvon Unity beziehen. - Den relativen Datenpfad mit dem Ausführungspfad zum absoluten Pfad der 3DGS-Szenendaten verketten.
Das Codebeispiel ist wie folgt:
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"; // Den relativen Pfad der LCC-Datei verketten
m_FilePath = _dataPath2.Replace('/', '\\');
#endif
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback);
}
}
Hinweis:
- Die obige Pfadverkettung ist mit
#if !UNITY_EDITORumschlossen: Im Editor-Zustand von Unity wird direkt der im Inspektor angegebenem_FilePath(lokale Entwicklungsdaten) verwendet; nur im veröffentlichten Laufzeitzustand wird der relative Pfad unter dem Ausführungsverzeichnis der Anwendung verkettet.- In einem PC-Build zeigt
Application.dataPathauf den Ordner<AppName>_Dataim Anwendungsverzeichnis; daher muss der relative Datenpfad mit dem Speicherort übereinstimmen, an den die Daten später kopiert werden.- Windows-Pfade verwenden Backslashes
\; das Beispiel verwendetReplace('/', '\\'), um sie zu konvertieren.
LCC-Szenendaten in ein angegebenes Verzeichnis kopieren
Nach dem normalen Erstellen des Unity-Projekts und dem Kompilieren/Veröffentlichen der Anwendung ist die erzeugte Anwendungsverzeichnisstruktur unten dargestellt.

Nach Unity-Build und Veröffentlichung erzeugte Anwendungsverzeichnisstruktur
Entsprechend dem relativen LCC-Pfad data/meta.lcc2 im Code müssen Sie die LCC-Szenendaten an die entsprechende Stelle im erzeugten Verzeichnis der Anwendung kopieren, wie unten dargestellt.

Die LCC-Szenendaten entsprechend dem relativen Pfad in das Anwendungsverzeichnis kopieren
Das gesamte Verzeichnis paketieren
Paketieren Sie das gesamte Anwendungsverzeichnis (Zip-Komprimierung) und verteilen Sie es an die Benutzer, die es benötigen. Nachdem der Benutzer es entpackt und den Viewer ausführt, können die Szenendaten im angegebenen Verzeichnis geladen werden.
Android-Paketierungsworkflow
Android verwendet denselben Ansatz wie der PC, aber der Datenpfad benötigt eine kleine Änderung: Verwenden Sie Application.persistentDataPath als Daten-Stammverzeichnis.
Ändern Sie das Rendering-Skript so, dass der Datenpfad mit persistentDataPath verkettet wird. Beachten Sie, dass der Plattformtyp separat über SetPlatformType() (vor GetRender()) gesetzt wird und Load() nur den Pfad und Callbacks erhält:
void Start()
{
// Der Plattformtyp muss vor GetRender() gesetzt werden
m_manager.SetPlatformType(PlatformType.Pico);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(
$"{Application.persistentDataPath}/LccData/meta.lcc2",
onLoadProgress,
onLoadCallback);
}
Paketierungs- und Bereitstellungsschritte:
- Den Code speichern und das Mobilgerät über ein USB-3.0-Kabel mit dem Computer verbinden, auf dem sich das Unity-Projekt befindet.
- In der Unity-Menüleiste Datei → Build-Einstellungen → Build wählen, um die APK zu erhalten.
- Die APK auf das Mobilgerät kopieren und installieren.
- Nach der Installation die App zunächst einmal öffnen, damit das System das Verzeichnis für den entsprechenden Paketnamen erstellt, und die App dann schließen.
- Unter dem Verzeichnis für den entsprechenden Paketnamen einen Ordner
LccDataerstellen und die LCC-Daten in diesen Ordner kopieren (der Pfad ist im Allgemeinen Android-Gerätespeicher → Android → data → App-BundleID → Files; das konkrete Verzeichnis entnehmen Sie dem Android-Installationspfad der App). - Die App erneut öffnen, und der LCC-Inhalt wird auf dem Telefon oder VR-Gerät angezeigt.

Einen LccData-Ordner unter dem Android-App-Paketnamen-Verzeichnis erstellen und die LCC-Daten hineinkopieren
Hinweise
- iOS unterstützt nicht den obigen Ansatz des dynamischen Ladens aus einem lokalen Verzeichnis. iOS erlaubt einer Anwendung nicht, alle Dateien unter einem angegebenen Ordner zu lesen; sie kann nur eine einzelne angegebene Datei lesen.
- Auf Mobil und VR wird empfohlen, die Daten auf einem Server abzulegen und die Daten zur Laufzeit vom Server zu beziehen, statt die Daten direkt in das APK-Anwendungspaket zu paketieren – Letzteres macht das Anwendungspaket sehr groß und aufgebläht.