Przewodnik współpakowania aplikacji i danych
LCC Unity SDK obsługuje oddzielenie aplikacji od danych. Jednak w rzeczywistym tworzeniu aplikacji czasami musisz spakować i opublikować aplikację razem z danymi sceny 3DGS. Ten dokument przedstawia podejścia współpakowania dla PC i Androida.
Dynamiczne ładowanie danych w czasie działania na PC
SDK ładuje dane w czasie działania przez metodę Load(); określona ścieżka musi być ścieżką bezwzględną, na przykład G:\Data\xxx.lcc2.
Aby dystrybuować aplikację i dane razem, możesz połączyć ścieżkę wykonywania aplikacji ze względną ścieżką danych sceny LCC w ścieżkę bezwzględną, w następujący sposób:
- Pobierz ścieżkę wykonywania aplikacji przez
Application.dataPathUnity. - Połącz względną ścieżkę danych ze ścieżką wykonywania w ścieżkę bezwzględną danych sceny 3DGS.
Przykład kodu jest następujący:
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"; // Połącz względną ścieżkę pliku LCC
m_FilePath = _dataPath2.Replace('/', '\\');
#endif
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback);
}
}
Uwaga:
- Powyższe łączenie ścieżki jest opakowane w
#if !UNITY_EDITOR: w stanie Edytora Unity używany jest bezpośredniom_FilePathokreślony w Inspektorze (lokalne dane deweloperskie); dopiero w opublikowanym środowisku uruchomieniowym łączona jest względna ścieżka pod katalogiem wykonywania aplikacji.- W kompilacji PC
Application.dataPathwskazuje folder<AppName>_Datapod katalogiem aplikacji, więc względna ścieżka danych musi odpowiadać lokalizacji, do której dane zostaną później skopiowane.- Ścieżki Windows używają ukośników wstecznych
\; przykład używaReplace('/', '\\'), aby je przekonwertować.
Skopiuj dane sceny LCC do określonego katalogu
Po normalnym zbudowaniu projektu Unity i skompilowaniu/opublikowaniu aplikacji wygenerowana struktura katalogu aplikacji jest pokazana poniżej.

Struktura katalogu aplikacji wygenerowana po zbudowaniu i opublikowaniu w Unity
Zgodnie ze względną ścieżką LCC data/meta.lcc2 w kodzie musisz skopiować dane sceny LCC do odpowiedniej lokalizacji pod wygenerowanym katalogiem aplikacji, jak pokazano poniżej.

Skopiuj dane sceny LCC do katalogu aplikacji zgodnie ze względną ścieżką
Spakuj cały katalog
Spakuj cały katalog aplikacji (kompresja Zip) i rozprowadź go wśród użytkowników, którzy go potrzebują. Po rozpakowaniu przez użytkownika i uruchomieniu Viewera dane sceny w określonym katalogu mogą zostać załadowane.
Przepływ pakowania dla Androida
Android używa tego samego podejścia co PC, ale ścieżka danych wymaga drobnej modyfikacji: użyj Application.persistentDataPath jako katalogu głównego danych.
Zmodyfikuj skrypt renderowania, aby połączyć ścieżkę danych z persistentDataPath. Zauważ, że typ platformy jest ustawiany osobno przez SetPlatformType() (przed GetRender()), a Load() otrzymuje tylko ścieżkę i wywołania zwrotne:
void Start()
{
// Typ platformy musi być ustawiony przed GetRender()
m_manager.SetPlatformType(PlatformType.Pico);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(
$"{Application.persistentDataPath}/LccData/meta.lcc2",
onLoadProgress,
onLoadCallback);
}
Kroki pakowania i wdrażania:
- Zapisz kod i połącz urządzenie mobilne z komputerem, na którym znajduje się projekt Unity, za pomocą kabla USB 3.0.
- Na pasku menu Unity wybierz Plik → Ustawienia kompilacji → Kompiluj, aby uzyskać APK.
- Skopiuj APK na urządzenie mobilne i zainstaluj go.
- Po instalacji najpierw otwórz aplikację raz, aby system utworzył katalog dla odpowiedniej nazwy pakietu, a następnie zamknij aplikację.
- Utwórz folder
LccDatapod katalogiem dla odpowiedniej nazwy pakietu i skopiuj dane LCC do tego folderu (ścieżka to zwykle Pamięć urządzenia Android → Android → data → BundleID aplikacji → Files; konkretny katalog znajdziesz w ścieżce instalacji aplikacji Android). - Otwórz aplikację ponownie, a zawartość LCC zostanie zaprezentowana na telefonie lub urządzeniu VR.

Utwórz folder LccData pod katalogiem nazwy pakietu aplikacji Android i skopiuj dane LCC
Uwagi
- iOS nie obsługuje powyższego podejścia dynamicznego ładowania z katalogu lokalnego. iOS nie pozwala aplikacji odczytywać wszystkich plików w określonym folderze; może odczytywać tylko pojedynczy określony plik.
- Na urządzeniach mobilnych i VR zaleca się umieszczenie danych na serwerze i pobieranie danych z serwera w czasie działania, zamiast bezpośredniego pakowania danych do pakietu aplikacji APK — to drugie sprawia, że pakiet aplikacji jest bardzo duży i rozdęty.