加载特效开发指南
LCC Unity SDK 支持加载特效,加载特效从指定点向外 720 度扩展蔓延,模拟从无到有的过程。下面介绍实现加载特效的完整步骤。
步骤 1:创建场景与游戏对象
在 Unity 中创建一个全新的场景,Unity 默认会创建 Main Camera 和 Directional Light。
设置 Main Camera
在 Hierarchy 窗口中选择 Main Camera,在 Inspector 窗口中按下图设置其属性。

设置 Main Camera 的属性
创建 LCCManager
在 Hierarchy 窗口空白处单击鼠标右键,在弹出的菜单中选择 Create Empty,创建一个空游戏对象,命名为 LCCManager,将其 Transform 归一,并通过 Add Component 为其添加 LCCManager 脚本。

创建 LCCManager 游戏对象并添加 LCCManager 脚本
创建 LCCRenderer
在 Hierarchy 窗口空白处单击鼠标右键,选择 Create Empty,创建一个空游戏对象,命名为 LCCRenderer,将其 Transform 设置为 Rotation.x = -90、Scale.x = -1。

创建 LCCRenderer 并设置 Transform(Rotation.x = -90、Scale.x = -1)
注意:
LCCRenderer 游戏对象的 Transform 设置(Rotation.x = -90、Scale.x = -1)是与 LCC 数据坐标系的对齐。关于坐标系对齐的详细说明,参见 Unity SDK 简介 中的「LCC 数据坐标系」。
步骤 2:编写脚本触发特效
新建一个 C# 脚本,命名为 VFX.cs,代码如下:
using LCCCore;
using UnityEngine;
public class VFX : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
Debug.Log("Started, loading data...");
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(m_FilePath, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"Load progress: {_progress:P1}");
}
private void onComplete()
{
Debug.Log("Load complete, enabling VFX ...");
Vector3 pos = Camera.main.transform.position + Camera.main.transform.forward * 2.0f;
m_manager.TriggerVFX(pos);
}
}
注意:
特效需要在 LCC 场景加载完成后触发,因此
TriggerVFX()在onComplete回调中调用。本示例在数据加载完成后,于渲染相机正前方 2 米处触发特效。
步骤 3:挂载脚本并设置数据路径
- 将
VFX.cs脚本挂载到 Hierarchy 窗口中的 LCCManager 游戏对象上。 - 在 Inspector 窗口中,将 LCCManager 游戏对象拖动到脚本的 Manager 属性上。
- 在脚本的 File Path 属性中填写 LCC 文件的路径地址。

挂载 VFX 脚本并设置 Manager 与 File Path 属性
步骤 4:运行
在 Game 窗口中点击 Play 按钮,即可看到场景中实时加载特效效果,特效从触发点向外 720 度扩展蔓延。

运行后场景中实时加载的特效效果
关键步骤
在 3DGS 场景中加载特效的关键步骤:
- 确保场景中已创建 LCCManager 与 LCCRenderer 游戏对象,并正确设置 Transform。
- 确保在 LCC 场景加载完成后(即在
onComplete回调中)通过代码触发特效。 - 通过
TriggerVFX()传入的世界坐标决定特效的扩散原点。
特效相关 API
LCC Unity SDK 通过 LCCManager 提供了触发特效的 API。它需要在 LCC 场景加载完成后调用(即在 onComplete 回调中)。
TriggerVFX
// 返回值:void
public void TriggerVFX(Vector3 vfxOriginW, int vfxid = 0)
在指定世界坐标触发特效,特效从该坐标点向外 720 度扩展蔓延。
| 参数 | 类型 | 说明 |
|---|---|---|
vfxOriginW | Vector3 | 特效的世界坐标原点 |
vfxid | int | 特效效果 ID,可选,默认为 0 |
调用示例:
Vector3 pos = Camera.main.transform.position + Camera.main.transform.forward * 2.0f;
m_manager.TriggerVFX(pos);
说明:
- 需在 LCC 场景加载完成后调用。
vfxOriginW为特效扩散的起始点世界坐标。- 调用后会将 shader keyword 切换到
_VFXMIX。