應用與數據協同打包開發指南
LCC Unity SDK 支持應用程序與數據分離。但在實際應用開發中,有時需要將應用程序與 3DGS 場景數據一併打包發布。本文介紹 PC 端與 Android 端的協同打包方式。
PC 端運行時動態加載數據
SDK 在運行時通過 Load() 方法加載數據,指定的路徑需要是絕對路徑,例如 G:\Data\xxx.lcc2。
為了讓應用程序與數據一起分發,可以用應用程序的執行路徑與 LCC 場景數據的相對路徑拼接出絕對路徑,步驟如下:
- 通過 Unity 的
Application.dataPath獲取應用程序的執行路徑。 - 將數據相對路徑與執行路徑拼接成 3DGS 場景數據的絕對路徑。
代碼示例如下:
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"; // 拼接 LCC 文件相對路徑
m_FilePath = _dataPath2.Replace('/', '\\');
#endif
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback);
}
}
說明:
- 上面用
#if !UNITY_EDITOR包裹路徑拼接:在 Unity 編輯狀態下直接使用 Inspector 中指定的m_FilePath(本地開發數據),只有發布運行時才拼接應用執行目錄下的相對路徑。Application.dataPath在 PC 發布版本中指向應用程序目錄下的<AppName>_Data文件夾,因此數據相對路徑要與後續拷貝數據的位置保持一致。- Windows 路徑使用反斜杠
\,示例中用Replace('/', '\\')做了轉換。
拷貝 LCC 場景數據到指定目錄
正常構建 Unity 工程、編譯發布應用程序後,生成的應用程序目錄結構如下圖所示。

Unity 編譯發布後生成的應用程序目錄結構
根據代碼中的 LCC 相對路徑 data/meta.lcc2,需要將 LCC 場景數據拷貝到應用程序生成目錄下對應的位置,如下圖所示。

將 LCC 場景數據按相對路徑拷貝到應用程序目錄下
打包整個目錄
將整個應用程序目錄打包(Zip 壓縮),發布給需要的用戶。用戶解壓後運行 Viewer,即可加載指定目錄下的場景數據。
Android 端打包流程
Android 端採用與 PC 端相同的思路,但數據路徑需要稍作修改:使用 Application.persistentDataPath 作為數據根目錄。
修改渲染腳本,用 persistentDataPath 拼接數據路徑。注意平台類型通過 SetPlatformType() 單獨設置(在 GetRender() 之前),Load() 只接收路徑與回調:
void Start()
{
// 平台類型需在 GetRender() 之前設置
m_manager.SetPlatformType(PlatformType.Pico);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(
$"{Application.persistentDataPath}/LccData/meta.lcc2",
onLoadProgress,
onLoadCallback);
}
打包與部署步驟:
- 保存代碼,用 USB 3.0 數據線將移動設備與 Unity 工程所在電腦連接。
- 在 Unity 菜單欄選擇 File → Build Settings → Build,得到 APK。
- 將 APK 拷貝到移動設備並安裝。
- 安裝完成後先打開一次應用,讓系統生成對應包名的目錄,然後關閉應用。
- 在對應包名的目錄下創建一個
LccData文件夾,將 LCC 數據拷貝到該文件夾下(路徑一般為 Android設備存儲盤 → Android → data → 應用 BundleID → Files,具體目錄可查閱 Android 應用安裝路徑)。 - 再次打開應用,即可在手機或 VR 設備上呈現 LCC 內容。

在 Android 應用包名目錄下創建 LccData 文件夾並拷入 LCC 數據
注意事項
- iOS 端不支持上述本地目錄動態加載方式。iOS 不允許應用讀取指定文件夾下的所有文件,只能讀取某一個指定文件。
- 在移動端、VR 端,建議將數據放到服務器上,運行時從服務器拉取數據,而不是直接把數據打包進 APK 應用程序包中——後者會導致應用程序包非常龐大和臃腫。