应用与数据协同打包开发指南
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 应用程序包中——后者会导致应用程序包非常庞大和臃肿。