加載特效開發指南
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。