Pico 4 Ultra 开发指南
Pico 4 Ultra 的 LCC 开发流程与 PICO 官方创建 VR 项目基本一致,官方流程见 PICO Unity Integration SDK。本指南在其基础上,说明如何接入 LCC Unity SDK 渲染 3DGS 场景。
版本要求
本指南使用的软件及插件版本如下,建议使用相同版本开发,其他未经测试的版本可能存在兼容问题:
| 软件 / 插件 | 版本 | 说明 |
|---|---|---|
| Unity | v2022.3.62f3 | 使用 Unity 2022 LTS |
| PICO Unity Integration SDK | v3.4.0 | 从 PICO 官方获取 |
| LCC Unity SDK | v2.1.27 及以上 | 支持 Built-in 的版本,需下载 Unity 2022 LTS 兼容版 |
更详细的硬件、软件要求见开发环境要求。
注意:
开发流程
步骤 1:创建工程
在工程模板中选择 3D (Built-in Render Pipeline) 类型。由于 PICO Unity Integration SDK 在 URP 管线上存在严重的性能问题,请不要选择 URP 管线,如下图所示:

创建 3D (Built-in Render Pipeline) 工程
步骤 2:切换平台
在 Unity 菜单中选择 File → Build Profiles 打开应用构建窗口,将平台切换为 Android,如下图所示:

在 Build Profiles 中将平台切换为 Android
步骤 3:导入 PICO Unity Integration SDK
从 PICO 官方网站下载 PICO Unity Integration SDK,并按照 PICO 教程安装该插件;也可以直接从 GitHub 导入,地址为 https://github.com/Pico-Developer/PICO-Unity-Integration-SDK.git。本指南使用的版本为 v3.4.0,如下图所示:

导入 PICO Unity Integration SDK v3.4.0
步骤 4:导入 LCC Unity SDK
通过 Unity 菜单 Window → Package Manager 打开 UPM 窗口,单击左侧 +,在下拉菜单中选择 Install package from disk,定位到 LCC Unity SDK,选择 package.json 文件导入,如下图所示:

通过 Install package from disk 导入 LCC Unity SDK
步骤 5:设置 Unity 环境
配置 XR Plug-in Management
在 Unity 菜单栏中选择 File → Project Settings,在左侧选择 XR Plug-in Management,在 Android 平台选项卡下勾选 Initialize XR on Startup,如下图所示:

在 XR Plug-in Management 中勾选 Initialize XR on Startup
选择 XR Plug-in Management 下的 PICO 项,将 Android 平台的 Render Mode 设为 MultiView,如下图所示:

将 PICO 的 Render Mode 设为 MultiView
选择 XR Plug-in Management 下的 Project Validation 项,点击 Fix All 完成必要设置(也可以先不处理,后续手动创建),如下图所示:

在 Project Validation 中点击 Fix All
注意:
- 如果点击 Fix All,会在当前打开的场景中创建相应的必要游戏对象,此时需要把场景中的 Main Camera 和 Directional Light 删除。
- 本示例仅修复 UIOrientation.LandscapeLeft 一项,其余均手动创建。
设置 Keystore
PICO 开发必须设置 Keystore。进入 Player → Android 选项卡 → Publishing Settings → Keystore Manager,新建 Keystore 并完成设置,如下图所示:

在 Keystore Manager 中新建 Keystore
设置公司名与产品名
PICO 开发不允许使用默认的 defaultCompany。在 Player 选项卡中,设置正确的 Company Name 和 Product Name,如下图所示:

设置 Company Name 与 Product Name
设置质量选项
在 Project Settings 中选择 Quality 选项卡,设置 Anti Aliasing = Disabled、Resolution Scaling Fixed DPI Factor = 0.7、VSync Count = Don't Sync,如下图所示:

在 Quality 选项卡中关闭抗锯齿、设置 DPI Factor 与垂直同步
填写 AppID
在 Unity 菜单中选择 PICO → Platform → Platform Setting 打开设置面板,在 Paste your App ID here 中填入在 PICO 开发者平台申请的 AppID,详见 创建开发者账号、组织与应用。

在 PICO Platform Setting 中填入 AppID
设置 Graphics
在 Project Settings 中选择 Graphics 选项卡,选择 Android 平台,按下图设置:

在 Graphics 选项卡中配置 Android 平台
设置 Player
在 Project Settings 中选择 Player 选项卡,选择 Android 平台,设置 Color Space = Gamma,取消勾选 Auto Graphics API,仅保留 Vulkan,其他设置如下图所示:

设置 Color Space 为 Gamma,图形 API 仅保留 Vulkan
在当前选项卡向下滑动,设置 Minimum API Level = Android 10.0、Scripting Backend = IL2CPP、API Compatibility Level = .NET Standard 2.1、Target Architectures = ARM64,其他设置如下图所示:

设置 Minimum API Level、Scripting Backend、API Compatibility Level 与 Target Architectures

删除 LCC SDK Editor 目录下的 RewriteWebpDllImport.cs
在当前选项卡继续向下滑动,设置 Active Input Handling = Input System Package (New),其他设置如下图所示:

将 Active Input Handling 设为 Input System Package (New)
步骤 6:创建场景
在 Unity 中创建一个全新的场景,删除 Main Camera 和 Directional Light。在层级窗口(Hierarchy)空白处单击鼠标右键,在弹出菜单中选择 XR → XR Origin (VR),创建必要的 XR 对象。
选中 XR Origin (VR) 对象,在属性窗口(Inspector)中通过 Add Component 添加 PXR_Manager 组件,并设置其相关属性如下图所示:

为 XR Origin (VR) 添加并配置 PXR_Manager 组件
选中 XR Origin (VR) 对象,在属性窗口(Inspector)的 XR Origin 组件中,将 Tracking Origin Mode 设为 Floor,其他属性如下图所示:

将 XR Origin 组件的 Tracking Origin Mode 设为 Floor
选中 XR Origin (VR) 对象的二级子对象 Main Camera,在属性窗口(Inspector)中设置 Camera 组件的相关属性,如下图所示:

设置 XR Origin (VR) 下 Main Camera 的 Camera 组件属性
在层级窗口(Hierarchy)中右键 Create Empty 创建一个空对象,命名为 LCCManager,将其 Transform 归一,并通过 Add Component 为其挂载 LCCManager 脚本,如下图所示:

创建 LCCManager 空对象并挂载 LCCManager 脚本
在层级窗口(Hierarchy)中右键 Create Empty 创建另一个空对象,命名为 LCCRenderer,将其 Transform 设置 Rotation.x = -90、Scale.x = -1,如下图所示:

创建 LCCRenderer 空对象,设置 Rotation.x = -90、Scale.x = -1 以对齐坐标系
Rotation.x = -90、Scale.x = -1 是 LCC 数据坐标系(Z-up 右手)到 Unity 坐标系(Y-up 左手)的对齐变换,详见 Unity SDK 简介 中的「LCC 数据坐标系」。
编写一个 C# 脚本,命名为 LCCRenderer.cs,代码如下:
using LCCCore;
using UnityEngine;
using UnityEngine.XR;
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
private void Awake()
{
XRSettings.eyeTextureResolutionScale = 0.8f; // 降低纹理分辨率,提高性能
}
void Start()
{
#if UNITY_EDITOR
m_manager.SetPlatformType(PlatformType.PC);
m_renderer = m_manager.GetRender(this.gameObject.transform);
m_renderer.Load(m_FilePath, onProgress, onLoaded);
#else
m_manager.SetPlatformType(PlatformType.Pico);
m_renderer = m_manager.GetRender(this.gameObject.transform);
m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
}
private void onProgress(float v)
{
Debug.Log("progress:" + v);
}
private void onLoaded()
{
m_manager.SetStartLod(2);
m_renderer.SetEnvironment(false);
Debug.Log("Data loaded");
}
}
将该脚本挂载到层级窗口(Hierarchy)中的 LCCRenderer 游戏对象上,然后在属性窗口(Inspector)中将 LCCManager 游戏对象拖到脚本的 Manager 属性上,最后填写 LCC 文件的路径地址。

将 LCCRenderer 脚本挂载到对象,绑定 Manager 与文件路径
为方便在 Unity Editor 中调试、并直接打包到 Android 真机,代码使用编译宏区分运行环境:在 Editor 中直接使用 m_FilePath 指定的地址;在 Android 设备上则使用设备本地的数据源。设备端数据的放置方式为:
- 先将打包好的应用在 PICO 设备上运行一次。
- 应用安装后,进入其数据目录(一般为 PICO 设备存储盘 → Android → data → 应用 BundleID → Files,具体目录可查阅 Android 应用安装路径),在 Files 子目录下创建
LccData文件夹。 - 将 LCC 数据源全部拷贝到
LccData文件夹下。
注意:
- 实际使用中,建议将 PICO 应用的数据源放在服务器上,而不是直接打包进应用。
- Pico 4 Ultra 设备的 3DGS 同屏渲染能力约为 70 万高斯基元,相比 PC 端约 2500 万的渲染能力有约两个数量级的差异,建议主要用于小场景、单物体的渲染展示;大场景使用 PC 串流会更流畅。
- 渲染 LCC 大场景时,建议将 StartLOD 设为
2并关闭环境数据显示(如示例代码所示)。
相关参考
- 工程项目与性能优化,请参见工程设置优化指南 、渲染性能参数设置指南 章节。
- PICO 开发的其它流程,请参考其官方文档:PICO 开发者文档。